求助 WA
查看原帖
求助 WA
781159
Lovely_Elaina楼主2023/2/22 22:33

调的我要寄了

#include <iostream>
#define max(a,b) (a>b?a:b)
#define lc(x) (x<<1)
#define rc(x) (x<<1|1)
#define int long long
using namespace std;
const int N = 200005;

int m,d,n;
int t[N*4];

inline void update(int k,int l,int r,int p,int v){
    if(l == r){
        t[k] = v;
        return ;
    }
    
    int mid = l + r >> 1;
    if(p <= mid) update(lc(k),l,mid,p,v);
    else update(rc(k),mid+1,r,p,v);
    
    t[k] = max(t[lc(k)],t[rc(k)]);
}

inline int query(int k,int l,int r,int x,int y){
    if(x == l && r == y){
        return t[k];
    }

    int mid = l + r >> 1;
    
    int a = 0,b = 0;
    if(x <= mid) a = query(lc(k),l,mid,x,y);
    if(y > mid) b = query(rc(k),mid+1,r,x,y);
    return max(a,b);
    
    //if(y <= mid) return query(lc(k),l,mid,x,y);
    //else if(x > mid) return query(rc(k),mid+1,r,x,y);
    //else return max(query(lc(k),l,mid,x,y),query(rc(k),mid+1,r,x,y));
}

signed main() {

    cin >> m >> d;

    int x,t=0;
    char c;

    while(m--){
        cin >> c >> x;
        if(c == 'A'){
            update(1,1,m,n+1,(x+t)%d);
            n++;
        }else{
            if(!x) t = 0;
            else t = query(1,1,n,n-x+1,n);
            cout << t << endl;
        }
    }

    return 0;
}
2023/2/22 22:33
加载中...