比赛 2026.9.5 评测结果 AAAAAAAAAAAAAAA
题目名称 To-Do List 最终得分 100
用户昵称 PXCZM 运行时间 9.044 s
代码语言 C++ 内存使用 70.82 MiB
提交时间 2026-09-05 11:46:30
显示代码纯文本
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e6+3;
int n;
ll ans;
struct sgt
{
    ll sum,Min;
    sgt() : sum(0),Min(0){}
}t[4000010];
sgt operator+(const sgt& s1,const sgt& s2)
{
    if(s1.Min==0) return s2;
    if(s2.Min==0) return s1;
    sgt res;
    res.sum=s1.sum+s2.sum;
    res.Min=max(s1.Min+s2.sum,s2.Min);
    return res;
}
void update(int rt,int l,int r,int pos,int val)
{
    if(l==r)
    {
        t[rt].sum+=val;
        if(t[rt].sum) t[rt].Min=l+t[rt].sum-1;
        else t[rt].Min=0;
        return;
    }
    int mid=(l+r)>>1,ls=rt<<1,rs=rt<<1|1;
    if(pos<=mid) update(ls,l,mid,pos,val);
    else update(rs,mid+1,r,pos,val);
    t[rt]=t[ls]+t[rs];
}
int a[1000010],b[1000010],cnt;
int main()
{
    freopen("List.in","r",stdin);
    freopen("List.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(nullptr);cout.tie(nullptr);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        char op; cin>>op;
        ll ss,tt,dd;
        if(op=='A')
        {
            cin>>ss>>tt;
            ss=(ss+ans)%mod;
            tt=(tt+ans)%mod;
            a[++cnt]=ss;
            b[cnt]=tt;
            update(1,1,1e6,ss,tt);
        }
        else
        {
            cin>>dd;
            dd=(dd+ans)%mod;
            update(1,1,1e6,a[dd],-b[dd]);
        }
        ans=t[1].Min;
        cout<<ans<<'\n';
    }
    return 0;
}