0分求助
查看原帖
0分求助
1237578
Wade_W楼主2024/7/9 14:10
#include<iostream>
#include<cstdio>
#include<stack>
using namespace std;
stack<int>s;
int h[80005],ans[80005];
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&h[i]);
	for(int i=n;i>=1;i--){
		while(!s.empty()&&h[s.top()]<=h[i])s.pop();
		if(s.empty())ans[i]=i+1;
		else ans[i]=s.top();
		s.push(i);
	}
	int sum=0;
	for(int i=1;i<=n;i++){
		int cnt=ans[i]-i-1;
		sum+=cnt;
	}
	printf("%d",sum);
	return 0;
}
2024/7/9 14:10
加载中...