| 比赛 |
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;
}