记录编号 179775 评测结果 AAAAAAAAAA
题目名称 [JSOI 2008] 最大数 最终得分 100
用户昵称 Gravatar炽烈的爱 是否通过 通过
代码语言 C++ 运行时间 4.029 s
提交时间 2015-08-17 10:45:27 内存使用 3.33 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
# define ll long long
ll yy;
ll n,m,l,r;
ll aa[200010],q[200010];
void get(int x)
{
	ll j=l,k=r,mid;
	while(j<=k)
	{
		mid=(j+k)>>1;
		if(x<=q[mid])
		{
			k=mid-1;
			yy=mid;
		}
		else
		    j=mid+1;
	}
	yy=aa[q[yy]];
}
int main()
{
	freopen("bzoj_1012.in","r",stdin);
	freopen("bzoj_1012.out","w",stdout);
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;++i)
	{
		char ch;ll x;
		cin>>ch>>x;
		if(ch=='A')
		{
			x=(x+yy)%m;
			aa[++aa[0]]=x;
			while(l<r&&aa[q[r]]<=aa[aa[0]])
			    r--;
			q[++r]=aa[0];
		}
		else
		{
			x=aa[0]-x+1;
			get(x);
			printf("%lld\n",yy);
		}
	}
	//while(1);
}