视野总和(加强版)
内存限制: 256 MiB时间限制: 2000 ms标准输入输出题目类型: 传统评测方式: 文本比较
题目描述
现在有个人站队所有的人全部向右看个子高的可以看到个子低的发型给出每个人的身高问所有人能看到其他人发型总和是多少
注意相同身高可以看到
输入格式
第一行一个整数
第二行个正整数
输出格式
一个整数
样例
样例输入
复制3
7 5 7
样例输出
复制2
#include <bits/stdc++.h>
using namespace std;
const int maxn = 5000005;
long long n;
long long ans = 0;
long long a[maxn];
stack<int> s;
int main() {
scanf("%lld", &n);
for(int i = 1; i <= n; i++) {
scanf("%lld", &a[i]);
while(s.size() && a[s.top()] < a[i]) {
s.pop();
}
ans += s.size();
s.push(i);
}
printf("%lld", ans);
return 0;
}