我为啥错了
查看原帖
我为啥错了
305558
jksdijdsic4楼主2020/8/7 12:21
#include<bits/stdc++.h>
using namespace std;
int sta[1000000],sta1[1000000],top,ans=0;
int h[1000000],v[1000000];
int n=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>h[i]>>v[i];
	}
	sta[++top]=1;
	for(int i=2;i<=n;i++){
		while(top>0 && h[sta[top]]<h[i]) {
			sta1[i]+=v[sta[top]];
			top--;
		}
		sta1[sta[top]]+=v[i];
		sta[++top]=i;
	}
	for(int i=1;i<=n;i++){
		ans=max(ans,sta1[i]);
	}
	cout<<ans<<endl;
}
2020/8/7 12:21
加载中...