0ptsWA sub1过了 求调 玄关
查看原帖
0ptsWA sub1过了 求调 玄关
1235109
wangyvting01楼主2024/12/14 22:00
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll m,d;
int cnt;
ll a[200010];
int lg[200010];
ll st[200010][30];
ll t;
void pre_log(){
	lg[1]=0;
	for(int i=2;i<=200000;i++){
		lg[i]=lg[i/2]+1;
	}
}
ll RMQ(int l,int r){
	int k=lg[r-l+1];
	return max(st[l][k],st[r-(1<<k)+1][k]);
}
void add(){
	for(int j=1;(1<<j)<=cnt;j++){
		st[cnt-(1<<j)+1][j]=max(RMQ(cnt-(1<<j)+1,cnt-1),a[cnt]);
	}
}
int main(){
	cin>>m>>d;
	while(m--){
		char op;
		cin>>op;
		if(op=='Q'){
			ll l;
			cin>>l;
			t=RMQ(cnt-l+1,cnt);
			cout<<t<<'\n';
		}else{
			ll n;
			cin>>n;
			a[++cnt]=(n+t)%d;
			st[cnt][0]=a[cnt];
			add();
		}
	}
	return 0;
} 
2024/12/14 22:00
加载中...