分析:单调队列模板题,用来统计前k个或后k个数中的最大值。
#includebits/stdc++.h
using namespace std;
int a[200005],ans[200005];
char q[1];
int main()
{
char c;
int M,D,cnt=0,lst=0,v;
scanf("%d%d", M, D);
while (M--)
{
scanf("%s%d",q,v);
if(q[0]=='A')
{
a[++cnt]=(lst+v)%D;
for(int i=cnt;i;i--)
if(ans[i]a[cnt]) ans[i]=a[cnt];
else break;
}
else
printf("%d\n",lst=ans[cnt-v+1]);
}
return 0;
}