1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int a[50010],ans[50010],d[50010],z[50010],top; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d",&a[i],&d[i]); for(int i=1;i<=n;i++) { while(top&&a[i]>a[z[top]]) { ans[i]+=d[z[top]]; top--; } z[++top]=i; } top=0; for(int i=n;i>=1;i--) { while(top&&a[z[top]]<a[i]) { ans[i]+=d[z[top]]; top--; } z[++top]=i; } int maxx=0; for(int i=1;i<=n;i++) maxx=max(maxx,ans[i]); printf("%d\n",maxx); return 0; }
- 1
信息
- ID
- 1657
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- (无)
- 递交数
- 6
- 已通过
- 5
- 上传者