求助!WA,30pts
  • 板块P1901 发射站
  • 楼主LolaPeppa
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/5 00:17
  • 上次更新2024/4/5 10:57:04
查看原帖
求助!WA,30pts
1314900
LolaPeppa楼主2024/4/5 00:17
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 1000010;
int n, a[N], w[N], stk[N], tt, p[N];
int main()
{
    scanf("%d", &n);
    for (int i = 1; i <= n; i ++ ) scanf("%d%d", &a[i], &w[i]);
    for (int i = 1; i <= n; i ++ )
    {
        while (tt && a[stk[tt]] <= a[i]) tt -- ;
        if (tt) p[stk[tt]] = w[i];
        stk[ ++ tt] = i;
    }
    tt = 0;
    memset(stk, 0 , sizeof stk);
    for (int i = n; i >= 1; i -- )
    {
        while (tt && a[stk[tt]] <= a[i]) tt -- ;
        if (tt) p[stk[tt]] += w[i];
        stk[ ++ tt] = i;
    }
    int res = 0;
    for (int i = 1; i <= n; i ++ ) res = max(res, p[i]);
    printf("%d\n", res);
    return 0;
}
2024/4/5 00:17
加载中...