比赛 2026.9.5 评测结果 TTEEEETTEEEEETE
题目名称 To-Do List 最终得分 0
用户昵称 0814d 运行时间 30.430 s
代码语言 C++ 内存使用 4.13 MiB
提交时间 2026-09-05 11:30:34
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int p=1e6+3;
int n,ans,cnt,last;
bool vis[1000005];
struct node{
    int start,end,c,op;
}str[1000005];
void in(int s,int t){
    while(true){
        bool vis2=0;
        for(int i=s;i<=s+t-1;i++){
            if(vis[i]==1){
                vis2=1;
            }
        }
        if(vis2==0){
           for(int i=s;i<=s+t-1;i++){
               vis[i]=1;
           }
           str[cnt].start=s;
           str[cnt].end=s+t-1;
           str[cnt].op=1;
           return;
       }else{
           s++;
       }
    }
    
}
int main(){
    freopen("List.in","r",stdin);
    freopen("List.out","w",stdout);
    cin>>n;
    for(int i=1;i<=n;i++){
        char a;
        cin>>a;
        if(a=='A'){
            int s,t;
            cin>>s>>t;
            s=(s+last)%p;
            t=(t+last)%p;
            //cout<<s<<" "<<t<<" ";
            cnt++;
            str[cnt].c=s;
            in(s,t);
        }
        if(a=='D'){
            int x;
            cin>>x; 
            str[x].op=0;  
        }
        int ended=0;
        for(int i=1;i<=cnt;i++){
            if(str[i].op==1){
                ended=max(ended,str[i].end);
            }
        }
        cout<<ended<<endl;
        last=ended;
    }
    return 0;
}