记录编号 |
398642 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[JSOI 2008] 最大数 |
最终得分 |
100 |
用户昵称 |
皓芷 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.373 s |
提交时间 |
2017-04-22 17:55:38 |
内存使用 |
3.36 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long LL;
LL m,d,b,t=0,r=1,l=1;
char y;
struct duilie
{
LL n,k;
}a[200001];
void charu(LL b)
{
b%=d;
b+=t;
b%=d;
if(l!=1)
{
while(b>=a[r-1].n&&r>1)
{
r--;
}
}
a[r].n=b;
a[r].k=l;
r++;l++;
}
void chaxun(LL b)
{
LL o=r-1;
LL j=l-b;
LL maxa=0;
while(a[o].k>=j&&o>=1)
{
maxa=max(maxa,a[o].n);
o--;
}
t=maxa;
printf("%lld\n",maxa);
}
int main()
{
freopen("bzoj_1012.in","r",stdin);
freopen("bzoj_1012.out","w",stdout);
scanf("%lld%lld",&m,&d);
for(LL i=1;i<=m;i++)
{
scanf("\n%c",&y);
if(y=='A'){scanf("%lld",&b);charu(b);}
if(y=='Q'){scanf("%lld",&b);chaxun(b);}
}
return 0;
}