1549:最大数
程序员文章站
2024-03-08 08:27:28
...
const int limit=2e5;
const int N=2e5+5;
int n,m,t;
int i,j,k;
int a[N<<2];
void build(int l,int r,int id)
{
if(l==r) return ;
a[id]=-inf;
int mid=l+1>>1;
build(l,mid,id<<1);
build(mid+1,r,id<<1|1);
}
int query(int l,int r,int ql,int qr,int id)
{
if(l==ql && r==qr) return a[id];
int mid=l+r>>1;
if(qr<=mid) return query(l,mid,ql,qr,id<<1);
else if(ql>mid) return query(mid+1,r,ql,qr,id<<1|1);
else return max(query(l,mid,ql,mid,id<<1),query(mid+1,r,mid+1,qr,id<<1|1));
}
void update(int l,int r,int pos,int val,int id)
{
if(l==r){ a[id]=val; return ;}
int mid=l+r>>1;
if(pos<=mid) update(l,mid,pos,val,id<<1);
else update(mid+1,r,pos,val,id<<1|1);
a[id]=max(a[id<<1],a[id<<1|1]);
return ;
}
int main()
{
//IOS;
while(sdd(n,m)==2){
int len=0;
int x,last=0;
for(i=1;i<=n;i++){
char ch[5];
ss(ch); sd(x);
if(ch[0]=='A'){
x=(last+x)%m;
update(1,limit,++len,x,1);
}
else{
last=query(1,limit,len-x+1,len,1);
pd(last);
}
}
}
return 0;
//PAUSE;
}
上一篇: 字符串与整型、浮点型数据之间的转换
下一篇: 至少是其他数字两倍的最大数