【bzoj 1012】[JSOI2008]最大数maxnumber 线段树裸题

来源:互联网 发布:有多少台湾人使用淘宝 编辑:程序博客网 时间:2024/06/04 20:03

裸题

#include<cstdio>#include<cstring>#include<iostream>#define maxn 200020#define ls u<<1,l,mid#define rs u<<1|1,mid+1,r#define LL long longusing namespace std;int m,len;LL d,t;struct node{int l,r;LL Max;node(){Max=l=r=0;}}nod[maxn*4];void push_up(int u){nod[u].Max=max(nod[u<<1].Max,nod[u<<1|1].Max);}void update(int u,int l,int r,int x,LL add){if(l==r){nod[u].Max=add;return;}int mid=l+r>>1;if(x>mid)update(rs,x,add);else update(ls,x,add);push_up(u);}LL query(int u,int l,int r,int x,int y){if(x==l&&r==y)return nod[u].Max;int mid=l+r>>1;if(x>mid)return query(rs,x,y);else if(y<=mid)return query(ls,x,y);else return max(query(ls,x,mid),query(rs,mid+1,y));}int main(){scanf("%d%lld",&m,&d);char s[5]; LL x;while(m--){scanf("%s%lld",s,&x);if(s[0]=='A'){x=(x+t)%d;len++;update(1,1,maxn,len,x);}else{t=query(1,1,maxn,len-x+1,len);printf("%lld\n",t);}}return 0;}


0 0