SOS all MLE
查看原帖
SOS all MLE
522930
formu1楼主2023/1/18 22:04

求救qaq

#include<bits/stdc++.h>
#define lson o<<1
#define rson o<<1|1
#define nmid long long mid=(nowl+nowr)>>1;
using namespace std;
const long long maxn=2e5+5;
long long t[maxn<<2];
void push_up(long long o){
	t[o]=max(t[lson],t[rson]);
}
void update(long long nowl,long long nowr,long long p,long long o,long long val){
	if(nowl==nowr){
		t[o]=val;
		return ;
	}
	nmid;
	if(p<=mid) update(nowl,mid,p,lson,val);
	else update(mid+1,nowr,p,rson,val);
	push_up(o);
}
long long query(long long nowl,long long nowr,long long l,long long r,int o){
	if(l<=nowl&&nowr<=r){
		return t[o];
	}
	nmid;
	long long res=-(1<<60);
	if(l<=mid) res=max(res,query(nowl,mid,l,r,lson));
	if(r>mid) res=max(res,query(mid+1,nowr,l,r,rson));
	return res;
}
long long m,D,T=0,tail=0;
int main(){
	scanf("%lld%lld",&m,&D);
	for(long long i=1;i<=m;++i){
		char c='\n';
		while(c=='\n'||c==' ') scanf("%c",&c);
		long long x;
		scanf("%lld",&x);
		if(c=='A'){
			update(1,m,++tail,1,(x+T)%D);
		}
		else{
			T=query(1,m,tail-x+1,tail,1);
			printf("%lld\n",T);
		}
	}
    return 0;
}
2023/1/18 22:04
加载中...