求调qwq
查看原帖
求调qwq
941580
ilmex楼主2024/5/26 21:23
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=200010;
int n,m,d,x,a[N],f[N][21],g[N],t;
char o;
signed main(){
	scanf("%lld%lld", &m, &d);
	for(int i=2; i<N; i++)g[i]=g[i/2]+1;
	while(m--){
		cin>>o>>x;
		if(o=='A'){
			f[++n][0]=(x+t)%d;
			for(int i=1; (1<<i)<=n; i++)f[n][i]=max(f[n][i-1],f[n-(1>>i-1)][i-1]);
		}else{
			int k=g[x];x=n-x+1;
			t=max(f[n][k],f[x+(1<<k)-1][k]);
			printf("%lld\n", t);
		}
	}
	return 0;
}
2024/5/26 21:23
加载中...