比赛 2026.9.5 评测结果 RRRRRRRRRRRRRRR
题目名称 To-Do List 最终得分 0
用户昵称 __0w0__ 运行时间 52.222 s
代码语言 C++ 内存使用 4.47 MiB
提交时间 2026-09-05 11:33:19
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define mod (int)(1e6+3)
//#define s first
//#define e second
int n,ans,res;
int s[1000001],t[1000001];
bool f[1000001];
struct task{
    int s,e,i;
    bool operator < (const task x)const{
        return s<x.s;
    }
};
inline int read(){
    int x=0;
    char c=getchar();
    while(!isdigit(c))c=getchar();
    while(isdigit(c))x=(x<<1)+(x<<3)+(c^48),c=getchar();
    return x;
}
//multiset<pair<int,int>>S;
multiset<task>S;
int main(){
    freopen("List.in","r",stdin);
    freopen("List.ans","w",stdout);
    cin>>n;
    for(int i=1,cnt=0;i<=n;i++){
        char op;
        cin>>op;
        if(op=='A')s[++cnt]=read(),t[cnt]=read();//,cout<<cnt<<"is inserted\n";;
//        cin>>s[++cnt]>>t[cnt];
//        cout<<"cnt"<<':'<<cnt<<';'<<s[cnt]<<' '<<s[cnt]+t[cnt]-1<<'\n';
        
        s[cnt]=(s[cnt]+res)%mod;
        t[cnt]=(t[cnt]+res)%mod;
        if(op=='A'){
//            S.insert(make_pair(s[cnt],t[cnt]));
            S.insert(task{s[cnt],t[cnt],cnt});
        }else{
            int e;
            cin>>e;
            e=(e+res)%mod;
//            cout<<e<<"is deleted\n";
//            auto x=S.find(make_pair(s[e],t[e]));
            auto x=S.find(task{s[e],t[e],e});
            S.erase(*x);
            f[e]=1;
        }
        ans=0;
        multiset<task>::iterator it=S.begin();
        for(;it!=S.end();it++){
//            pair<int,int> it=j;   
            task j=*it;
            if(f[j.i])continue;
            ans++;
            ans=max(j.s,ans);
//            cout<<j.i<<':'<<j.s<<' '<<j.e<<"     ";
//            cout<<ans<<' '<<ans+j.e-1<<'\n';
            ans+=j.e-1;
        }
        cout<<ans<<'\n';
        res=ans;
    }
    return 0;
}
/*
12
A 235914 262875
A 666428 285768
A 665699 346436
A 703468 312977
A 546711 221060
D 66137
D 625212
D 339066
D 423757
A 308557 933268
A 979535 631723
D 215043
*/