题目:
#include#include #include #include using namespace std;const int N=5e4+5;int n,h[N],c[N],q[N],he,tl,cnt[N],ans;int rdn(){ int ret=0;bool fx=1;char ch=getchar(); while(ch>'9'||ch<'0'){ if(ch=='-')fx=0;ch=getchar();} while(ch>='0'&&ch<='9') ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar(); return fx?ret:-ret;}int main(){ n=rdn();for(int i=1;i<=n;i++)h[i]=rdn(),c[i]=rdn(); he=1; for(int i=1;i<=n;i++) { while(he<=tl&&h[i]>h[q[tl]])cnt[i]+=c[q[tl]],tl--; q[++tl]=i; } he=1;tl=0; for(int i=n;i;i--) { while(he<=tl&&h[i]>h[q[tl]])cnt[i]+=c[q[tl]],tl--; q[++tl]=i; } for(int i=1;i<=n;i++)ans=max(ans,cnt[i]); printf("%d\n",ans); return 0;}