关注
这个缩进看得我难受,自己对着写了遍,测试样例都没过,楼主看看哪里错了。 typedef long long LL; int main() { int n; cin >> n; if (n <= 1) { cout << 0 << endl; return 0; } vector<LL> a(n); for (int i = 0; i < n; i++) cin >> a[i]; stack<pair<LL, int> > s; vector<int> c(n), d(n); for (int i = 0; i < n; i++) { while (!s.empty() && s.top().first > a[i]) s.pop(); if (s.empty()) c[i] = -1; else c[i] = s.top().second; s.push(make_pair(a[i], i)); } s = stack<pair<LL, int> >(); for (int i = n - 1; i >= 0; i--) { while (!s.empty() && s.top().first >= a[i]) s.pop(); if (s.empty()) d[i] = n; else d[i] = s.top().second; s.push({ a[i], i }); } LL res = 0; for (int i = 0; i < n; i++) { res -= a[i] * (i - c[i]) * (d[i] - i); } s = stack<pair<LL, int> >(); for (int i = 0; i < n; i++) { while (!s.empty() && s.top().first <= a[i]) s.pop(); if (s.empty()) c[i] = -1; else c[i] = s.top().second; s.push({ a[i], i }); } s = stack<pair<LL, int> >(); for (int i = n - 1; i >= 0; i--) { while (!s.empty() && s.top().first < a[i]) s.pop(); if (s.empty()) d[i] = n; else d[i] = s.top().second; s.push({ a[i], i }); } for (int i = 0; i < n; i++) { res += a[i] * (i - c[i]) * (d[i] - 1); } cout << res << endl; return 0; }
查看原帖
点赞 2
相关推荐
11-29 14:05
门头沟学院 嵌入式软件开发 点赞 评论 收藏
分享
11-28 17:48
中山大学 C++ 点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
241025次浏览 2051人参与
# 实习,投递多份简历没人回复怎么办 #
2448555次浏览 34805人参与
# 北方华创开奖 #
68124次浏览 558人参与
# 25届秋招总结 #
427145次浏览 4320人参与
# 虾皮求职进展汇总 #
101317次浏览 813人参与
# 地方国企笔面经互助 #
7435次浏览 18人参与
# 阿里云管培生offer #
65869次浏览 1769人参与
# ai智能作图 #
36084次浏览 442人参与
# 中兴求职进展汇总 #
471324次浏览 2453人参与
# 我在牛爱网找对象 #
75258次浏览 556人参与
# 双非有机会进大厂吗 #
106415次浏览 1337人参与
# 实习想申请秋招offer,能不能argue薪资 #
38202次浏览 313人参与
# 机械求职避坑tips #
24256次浏览 252人参与
# 发工资后,你做的第一件事是什么 #
10949次浏览 54人参与
# 25届机械人为了秋招做了哪些准备? #
26837次浏览 366人参与
# 投格力的你,拿到offer了吗? #
47955次浏览 337人参与
# 我的实习求职记录 #
6146881次浏览 84097人参与
# 投递实习岗位前的准备 #
1194058次浏览 18511人参与
# 机械人怎么评价今年的华为 #
158525次浏览 1354人参与
# 在职场上,你最讨厌什么样的同事 #
6507次浏览 98人参与
# 实习与准备秋招该如何平衡 #
726240次浏览 8569人参与
# 华为工作体验 #
112583次浏览 872人参与