#include <iostream>
#define ll long long
#define N 200005
using namespace std;
ll m, d;
int idx = 1;
ll ans = 0;
ll num[N], ma[N * 4];
inline ll lc(ll p) {
return p << 1;
}
inline ll rc(ll p) {
return p << 1 | 1;
}
void PushUp(ll p, ll l, ll r) {
ma[p] = max(ma[lc(p)], ma[rc(p)]);
}
void Build(ll p, ll l, ll r) {
if (l == r) {
ma[p] = num[l];
return;
}
ll mid = (l + r) >> 1;
Build(lc(p), l, mid);
Build(rc(p), mid + 1, r);
PushUp(p, l, r);
}
ll query(ll p,ll ql,ll qr,ll l,ll r) {
if (ql <= l && qr >= r) {
return ma[p];
}
ll mid = (l + r) >> 1;
ll an=-0x7ffffff;
if (ql <= mid) {
an = max(an, query(lc(p), ql, qr, l, mid));
}
if (qr >= mid + 1) {
an = max(an, query(rc(p), ql, qr, mid + 1, r));
}
return an;
}
int main() {
cin >> m >> d;
while (m--) {
char c;
cin >> c;
if (c == 'A') {
ll n;
cin >> n;
num[idx] = (ans + n) % d;
Build(1,1,idx);
idx++;
}
if (c == 'Q') {
ll l;
cin >> l;
ll L, R;
L = idx - l;
R = idx - 1;
ans = query(1, L, R, 1, idx - 1);
cout << ans << endl;
}
}
return 0;
}
我自己测试了那么亿组数据,仍找不到错误。我甜蜜的心态崩了啊~~~~
哪位善良的大佬能拯救我吗?