QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#882295 | #9708. Yuuki and a problem | gsn531 | AC ✓ | 1677ms | 626720kb | C++26 | 2.1kb | 2025-02-04 23:22:04 | 2025-02-04 23:22:04 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define rep(i, a, b) for(int i = (a); i <= (b); ++i)
#define per(i, a, b) for(int i = (a); i >= (b); --i)
#define lb(x) (x & (-x))
const int maxn = 2e5 + 5;
int n, m, a[maxn], N = 2e5;
int rt[maxn], tot;
struct tree{
int ch[2]; int sum;
}t[maxn * 200];
inline void updt(int &x, int l, int r, int p, int v){
if(!x) x = ++tot; t[x].sum += v;
if(l == r) return;
int mid = l + r >> 1;
if(p <= mid) updt(t[x].ch[0], l, mid, p, v);
else updt(t[x].ch[1], mid + 1, r, p, v);
}
int st[maxn], tp, stt[maxn];
inline int qryr(int l, int r, int L, int R){
if(l >= L and r <= R){
int sum = 0;
rep(i, 1, tp) sum += t[st[i]].sum;
return sum;
}
int mid = l + r >> 1, sum = 0;
if(L <= mid){
rep(i, 1, tp) stt[i] = st[i], st[i] = t[st[i]].ch[0];
sum += qryr(l, mid, L, R);
rep(i, 1, tp) st[i] = stt[i];
}
if(R > mid){
rep(i, 1, tp) stt[i] = st[i], st[i] = t[st[i]].ch[1];
sum += qryr(mid + 1, r, L, R);
rep(i, 1, tp) st[i] = stt[i];
}
return sum;
}
inline int qry(int x, int l, int r){
tp = 0;
for(int i = x; i; i -= lb(i)) st[++tp] = rt[i];
return qryr(1, N, l, r);
}
signed main(){
ios_base::sync_with_stdio(0); cin.tie(NULL);
cin >> n >> m;
rep(i, 1, n) cin >> a[i];
rep(x, 1, n){
for(int i = x; i <= n; i += lb(i))
updt(rt[i], 1, N, a[x], a[x]);
}
while(m--){
int op, x, y; cin >> op >> x >> y;
if(op == 1){
for(int i = x; i <= n; i += lb(i)){
updt(rt[i], 1, N, a[x], -a[x]);
updt(rt[i], 1, N, y, y);
}
a[x] = y;
} else{
int ans = 1;
while(true){
int tmp = qry(y, 1, ans) - qry(x - 1, 1, ans);
if(tmp >= ans) ans = tmp + 1;
else break;
}
cout << ans << '\n';
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 818ms
memory: 626720kb
input:
199764 199778 133101 69413 73309 22139 46693 131970 90981 150001 6352 118276 101164 12691 168203 190853 98599 198097 86901 92688 192934 187579 47910 89959 111317 41624 197440 106737 121438 188902 106461 149886 163820 136239 14632 193976 42315 57797 87112 1001 81835 14938 143862 58531 18884 39422 746...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 99852 numbers
Test #2:
score: 0
Accepted
time: 927ms
memory: 594980kb
input:
199743 199521 58347 17936 21455 28866 21737 9533 66734 30077 974 23474 64572 18655 54496 3970 12256 5031 4870 81779 28649 38611 17190 59305 20236 84444 4607 1039 13615 66801 17518 7451 49128 20526 2053 45034 18673 33163 7070 918 62622 2432 11321 22571 34027 15386 98367 87636 5174 11802 5674 11897 49...
output:
1 1 2 1 2665756118 1 1 942578035 1 1 3051989985 2 3262365785 1705900076 1 2 1 1 1 2034374923 4640072932 3067002025 2200817130 3555564691 1 3213229019 2208128504 1 1 1 2749748541 1 3222821034 1 2190210138 2674196805 1 2338763039 2 3300034803 1 3126581521 2 5188482582 1 2 2306056230 1 3075211681 1 2 1...
result:
ok 99737 numbers
Test #3:
score: 0
Accepted
time: 243ms
memory: 103196kb
input:
200000 200000 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 20...
output:
39996662144 2 4 1 8 1 16 1 32 1 64 1 128 1 256 1 512 1 1024 1 2048 1 4096 1 8192 1 16384 1 32768 1 65536 1 131072 1 262144 1 462144 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 196076 numbers
Test #4:
score: 0
Accepted
time: 671ms
memory: 144044kb
input:
200000 200000 1 1 1 3 2 4 6 8 8 20 23 46 45 92 124 185 204 451 263 946 1016 1133 1652 3032 2264 7985 5876 13596 10566 28923 17002 51587 58833 91276 102833 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 20000...
output:
39993400008 2 3 4 7 9 13 19 27 35 55 78 124 169 261 385 570 774 1225 1488 2434 3450 4583 6235 9267 11531 19516 25392 38988 49554 78477 95479 147066 205899 297175 400008 39993060958 2 2 3 3 2 2 2 2 3 3 2 2 3 3 3 3 2 2 2 2 3 3 3 3 3 3 8 8 14 14 13 13 8 8 14 14 8 8 14 14 14 14 8 8 8 8 14 14 14 14 14 14...
result:
ok 175850 numbers
Test #5:
score: 0
Accepted
time: 786ms
memory: 320044kb
input:
200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000...
output:
35882662144 39961746091 39938912530 39942468766 33509221556 39947608555 39942137588 29969955382 38598405861 39955087000 37748488221 39966036256 39969467128 29860353347 30230763598 35619069461 35094269461 39921707549 28092120101 39941254645 36239709260 39966919943 27935599393 33989312796 33614750133 ...
result:
ok 100000 numbers
Test #6:
score: 0
Accepted
time: 887ms
memory: 297636kb
input:
200000 200000 7527 422 7 26 246 130435 200000 200000 200000 1 3007 1514 8 829 14715 1088 51 61071 34682 3 206 2 104 14 4912 11 178 74 1 1 74680 200000 752 67 6 23 200000 68 38 1504 32 149361 251 22575 3010 3 10539 6018 29528 1 510 200000 4 200000 1 200000 30 188242 8 200000 200000 200000 109 458 200...
output:
860871 698722 3194 192249 22156 1090408 122497 349956 852853 928787 1013519 830974 1488 3562 643117 16610 640046 892960 1173975 428090 586907 1298 105913 128671 1095307 658278 247292 482084 944815 548671 1081753 149371 21078 455155 36874 99272 768668 102754 880725 693504 658038 158520 1208569 919680...
result:
ok 104000 numbers
Test #7:
score: 0
Accepted
time: 450ms
memory: 453412kb
input:
200000 200000 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 185897 63238 177956 9434 2897 104712 125166 104282 7464 21311 31056 163094 91535 168781 156567 18602 184347 87400 186624 132485 88660 136794 28799 33259 6711 144512 76601 144756 89525 190604 95881 13259 188530 81...
output:
19985785840 2 4 1 8 1 16 1 32 1 64 1 128 1 256 1 512 1 1024 1 2048 1 4096 1 8192 1 16384 1 32768 1 65536 1 131072 1 262144 1 448041 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19985785839 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 196076 numbers
Test #8:
score: 0
Accepted
time: 1677ms
memory: 94876kb
input:
200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000 200000...
output:
39940062144 39897862144 35522062144 39896662144 32647862144 39927462144 39930262144 25464462144 31472062144 33392462144 39902862144 34002462144 39925862144 39932262144 35917262144 31095062144 31416262144 30549662144 39947862144 26160262144 39929462144 39951262144 39905662144 39942062144 30228262144 ...
result:
ok 200000 numbers
Test #9:
score: 0
Accepted
time: 875ms
memory: 488396kb
input:
200000 200000 1 1 1 2 2 7 6 12 11 22 20 54 53 111 119 177 254 390 488 703 734 1263 1241 2839 3816 4227 5039 9075 9138 23548 23251 33584 61977 65660 124338 46418 126844 49672 89918 66238 152507 76549 183787 88574 22657 125441 64370 83264 147127 116012 67344 21334 78028 151321 73479 24440 116276 15232...
output:
19973645554 2 3 4 6 8 15 21 33 44 66 86 140 193 304 423 600 854 1244 1732 2435 3169 4432 5673 8512 12328 16555 21594 30669 39807 63355 86606 120190 182167 247827 372165 19973770662 2 2 3 3 3 3 2 2 2 2 3 3 3 3 3 3 5214618815 5746320693 5388805950 7697573867 7353206574 9451284962 5289881199 5451390292...
result:
ok 176130 numbers
Test #10:
score: 0
Accepted
time: 823ms
memory: 273012kb
input:
200000 200000 2 27 1 912 106 2181 5201 1083 73 283 4 44121 7145 451 55 1 18489 8088 13 8 118 14629 11750 446 60 1 238 3 30 14 2510 694 10040 1256 37326 5020 7 1 334 3 1420 807 153 391 1 208 1 2841 838 3 26896 6521 6 39 19 7 1 13043 78 515 12 94 462 28 219 1350 5 6874 438 9 318 1 1565 17 1 12143 2608...
output:
88245 84481 26893 26211 8045 43 5516 14986 20162 6649 4146 24223 5890 54535 45666 6803 10127 1010 2577 71451 22347 1040 450 77970 11055 4262 108794 79731 3799 15200 14850 75603 15773 4 17145 21 12866 28320 146164 36092 73065 13252 13311 222162 45655 52252 39832 101 1821 36266 13533 26885 77057 83519...
result:
ok 105000 numbers