``` #include <iostream> #include <vector> #include <stack> using namespace std; int main() { int n = 0; cin >> n; vector<int> v; for (int i = 0; i < n; i++) { int val = 0; cin >> val; v.push_back(val); } stack<int> st; vector<int> left(n, -1); vector<int> right(n, -1); for (int i = 0; i < n; i++) { while (!st.empty() && v[st.top()] >= v[i]) { right[st.top()] = i; st.pop(); } if (!st.empty()) { left[i] = st.top(); } st.push(i); } for (int i = n - 1; i >= 0; i--) { if (right[i] != -1 && v[right[i]] >= v[i]) { right[i] = right[right[i]]; } } for (int i = 0; i < n; i++) { cout << left[i] << " " << right[i] << endl; } return 0; } ```</int></int></int></int></stack></vector></iostream>
点赞

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
12-03 03:32
安徽大学 Java
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务