20分求助
查看原帖
20分求助
996107
2b2b2bbb楼主2024/11/22 16:59
#include<bits/stdc++.h>
using namespace std;
int n;
long long a[1000005],ans;
struct pi{
	long long x,id;
};
stack<pi>q;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for(int i = 1 ; i <= n ; i ++){
		cin >> a[i];
	}
	for(int i = 1 ; i <= n ; i ++){
		if(!q.empty()){
			while(!q.empty() && q.top().x <= a[i]){
				ans ++;
				q.pop();
			}
		}
		q.push({a[i] , i});
	}
	while(!q.empty())q.pop();
	for(int i = n ; i >= 1 ; i --){
		if(!q.empty()){
			while(!q.empty() && q.top().x <= a[i]){
				ans ++;
				q.pop();
			}
		}
		q.push({a[i] , i});
	}
	cout << ans;
	return 0;
}
2024/11/22 16:59
加载中...