#include<cstdio>
#include<iostream>
using namespace std;
long long m,p,n=0;
long long shu[2000001];
char c;
long long cha(long long,long long,long long,long long,long long);
long long jl[2000001];
int wow=0;
long long jia(long long,long long,long long,long long,long long);
long long a=0;
int main()
{
cin>>m>>p;
for(long long j=1;j<=m;j++)
{
long long lua=0;
cin>>c;
if(c=='Q')
{
cin>>lua;
a=cha(n-lua+1,n,1,1,m);
jl[++wow]=a;
}
else
{
n++;
cin>>lua;
lua=(lua+a)%p;
jia(n,lua,1,1,m);
}
}
for(int es=1;es<=wow;es++)
cout<<jl[es]<<endl;
return 0;
}
long long cha(long long zuo,long long you,long long trt,long long x,long long y)
{
long long mam=0;
if((zuo<=x)&&(you>=y)) return shu[trt];
if(zuo<=(x+y)/2) mam=max(mam,cha(zuo,you,trt*2,x,(x+y)/2));
if(you>(x+y)/2) mam=max(mam,cha(zuo,you,trt*2+1,(x+y)/2+1,y));
return mam;
}
long long jia(long long wei,long long mu,long long rt,long long zuo,long long you)
{
if((wei==zuo)&&(wei==you))
{
shu[rt]=mu;
return 0;
}
if(wei<=(zuo+you)/2) jia(wei,mu,rt*2,zuo,(zuo+you)/2);
if(wei>(zuo+you)/2) jia(wei,mu,rt*2+1,(zuo+you)/2+1,you);
shu[rt]=max(shu[rt*2],shu[rt*2+1]);
return 0;
}
cincout版
by 许豪 @ 2018-10-29 21:55:21
@[xu_hao](/space/show?uid=36506) 希望更丰富的展现?使用Markdown。还有Luogu的评测机是`Linux`的环境。
by andyli @ 2018-10-29 21:56:40
#include<cstdio>
#include<iostream>
using namespace std;
long long m,p,n=0;
long long shu[2000001];
char c;
long long cha(long long,long long,long long,long long,long long);
long long jl[2000001];
int wow=0;
long long jia(long long,long long,long long,long long,long long);
long long a=0;
int main()
{
cin>>m>>p;
getchar();
for(long long j=1;j<=m;j++)
{
long long lua=0;
scanf("%c",&c);
if(c=='Q')
{
scanf("%d",&lua);
a=cha(n-lua+1,n,1,1,m);
jl[++wow]=a;
}
else
{
n++;
scanf("%lld",&lua);
lua=(lua+a)%p;
jia(n,lua,1,1,m);
}
getchar();
}
for(int es=1;es<=wow;es++)
printf("%lld\n",jl[es]);
return 0;
}
long long cha(long long zuo,long long you,long long trt,long long x,long long y)
{
long long mam=0;
if((zuo<=x)&&(you>=y)) return shu[trt];
if(zuo<=(x+y)/2) mam=max(mam,cha(zuo,you,trt*2,x,(x+y)/2));
if(you>(x+y)/2) mam=max(mam,cha(zuo,you,trt*2+1,(x+y)/2+1,y));
return mam;
}
long long jia(long long wei,long long mu,long long rt,long long zuo,long long you)
{
if((wei==zuo)&&(wei==you))
{
shu[rt]=mu;
return 0;
}
if(wei<=(zuo+you)/2) jia(wei,mu,rt*2,zuo,(zuo+you)/2);
if(wei>(zuo+you)/2) jia(wei,mu,rt*2+1,(zuo+you)/2+1,you);
shu[rt]=max(shu[rt*2],shu[rt*2+1]);
return 0;
}
printf scanf 版
by 许豪 @ 2018-10-29 21:56:58
@[andyli](/space/show?uid=84282) linux是什Markdown又是什?
by 许豪 @ 2018-10-29 21:58:31
getchar据说有毒 我也不知道为什么
by zhutier @ 2018-10-29 22:00:43