QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#925079 | #9727. Barkley III | fractal# | TL | 1245ms | 81352kb | C++17 | 3.6kb | 2025-03-04 02:42:11 | 2025-03-04 02:42:12 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define sz(x) (int)x.size()
using I = unsigned long long;
const int N = 1e6 + 200;
const I M = ULONG_MAX;
int n, q;
I a[N];
I P[N << 2];
struct node {
I A, O, T;
} t[N << 2];
node merge(node a, node b) {
return {a.A & b.A, a.O | b.O, a.T | b.T | ((~a.A) & (~b.A))};
}
void build(int v = 1, int tl = 1, int tr = n) {
P[v] = M;
if (tl == tr) {
t[v].A = t[v].O = a[tl];
t[v].T = 0;
return;
}
int tm = tl + tr >> 1;
build(v * 2, tl, tm);
build(v * 2 + 1, tm + 1, tr);
t[v] = merge(t[v * 2], t[v * 2 + 1]);
}
void push(int v, int tl, int tr) {
if (P[v] == M) return;
if (tl != tr) {
P[v * 2] &= P[v];
P[v * 2 + 1] &= P[v];
t[v].T |= ~P[v];
}
t[v].A &= P[v];
t[v].O &= P[v];
P[v] = M;
}
node get(int l, int r, int v = 1, int tl = 1, int tr = n) {
push(v, tl, tr);
if (r < tl || tr < l || l > r) {
return {M, 0, 0};
}
if (l <= tl && tr <= r) {
return t[v];
}
int tm = tl + tr >> 1;
return merge(get(l, r, v * 2, tl, tm), get(l, r, v * 2 + 1, tm + 1, tr));
}
void upd(int l, int r, I x, int v = 1, int tl = 1, int tr = n) {
push(v, tl, tr);
if (r < tl || tr < l)
return;
if (l <= tl && tr <= r) {
P[v] &= x;
push(v, tl, tr);
return;
}
int tm = tl + tr >> 1;
upd(l, r, x, v * 2, tl, tm);
upd(l, r, x, v * 2 + 1, tm + 1, tr);
t[v] = merge(t[v * 2], t[v * 2 + 1]);
}
void updp(int pos, I x, int v = 1, int tl = 1, int tr = n) {
push(v, tl, tr);
if (tr < pos || pos < tl) return;
if (tl == tr) {
t[v].A = t[v].O = x;
t[v].T = 0;
return;
}
int tm = tl + tr >> 1;
updp(pos, x, v * 2, tl, tm);
updp(pos, x, v * 2 + 1, tm + 1, tr);
t[v] = merge(t[v * 2], t[v * 2 + 1]);
}
int find(int l, int r, int b, int v = 1, int tl = 1, int tr = n) {
push(v, tl, tr);
if (r < tl || tr < l)
return 0;
if (l <= tl && tr <= r) {
if ((t[v].A>>b)&1)
return 0;
}
if (tl == tr) {
return tl;
}
int tm = tl + tr >> 1;
return find(l, r, b, v * 2, tl, tm)|find(l, r, b, v * 2 + 1, tm + 1, tr);
}
void solve() {
cin >> n >> q;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
build();
for (int i = 1, tp, l, r; i <= q; ++i) {
I x;
cin >> tp;
if (tp == 1) {
cin >> l >> r >> x;
upd(l, r, x);
}
if (tp == 2) {
cin >> l >> x;
updp(l, x);
}
if (tp == 3) {
cin >> l >> r;
node g = get(l, r);
int j = 0;
for (int b = 63; b >= 0; --b) {
if (((g.O >> b) & 1) && !((g.A >> b)&1) && !((g.T >> b)&1)) {
j = find(l, r, b);
assert(l <= j && j <= r);
break;
}
}
// cerr << "BIT: " << j << '\n';
// cerr << "T: " << (bitset<64>(t[1].T)) << '\n';
// cerr << "A: " << (bitset<64>(t[1].A)) << '\n';
// cerr << "O: " << (bitset<64>(t[1].O)) << '\n';
if (j == 0) {
cout << g.A << '\n';
}
else {
cout << (get(l, j - 1).A&get(j + 1, r).A) << '\n';
}
}
}
}
int main() {
cin.tie(0)->sync_with_stdio(0);
int T = 1;
// cin >> T;
while (T--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 7908kb
input:
5 9 7 7 7 6 7 3 1 5 2 1 3 3 1 5 3 1 3 1 1 2 3 3 1 3 2 2 8 3 1 3 3 1 2
output:
7 6 7 3 3 8
result:
ok 6 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 7784kb
input:
10 10 6760061359215711796 1568091718842717482 1568091718842717482 1568091718842717482 5232472783634052627 8795942500783873690 1568091718842717482 1568091718842717482 1568091718842717482 1568091718842717482 1 3 5 7587422031989082829 3 6 10 1 7 8 5197616143400216932 2 4 2518604563805514908 2 2 4533959...
output:
1568091718842717482 35184908959744 176025477579040 8795942500783873690
result:
ok 4 lines
Test #3:
score: 0
Accepted
time: 0ms
memory: 7784kb
input:
100 100 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 625967318191814868 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072360993 4263579105072...
output:
576531121047601152 1 576460752303423488 4263579105072360993 1306043896232411137 4263579105072360993 576531121047601152 633397148123136 0 1153488865559840256 1152922054496880128 1730020640668059136 3533641810948498945 67108864 1730020640668059136 0 633397148123136 1729382296723653632 0 17300206406680...
result:
ok 78 lines
Test #4:
score: 0
Accepted
time: 1ms
memory: 7784kb
input:
1000 1000 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3368486440884437410 3639580211161047627 3368486440884437410 3368486440884437410 3368486440...
output:
3368486440884437410 3368486440884437410 3368486440884437410 2251799981457408 0 0 3368486440884437410 0 3326828075601101216 592509842556584322 0 0 0 0 0 0 37154696925806592 0 0 0 3368486440884437410 0 0 3368486440884437410 0 578998425140330496 0 0 134217728 0 3368486440884437410 2306405959167115264 0...
result:
ok 732 lines
Test #5:
score: 0
Accepted
time: 85ms
memory: 18572kb
input:
100000 100000 4364025563773184234 7745126251050571359 5111681002836044963 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7745126251050571359 7222555899134537718 7745126251050571359 686495...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4613942216556019776 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 75105 lines
Test #6:
score: 0
Accepted
time: 1186ms
memory: 81352kb
input:
1000000 1000000 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485203341817263234 5485...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8796093022208 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 576460754450907136 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
ok 749866 lines
Test #7:
score: 0
Accepted
time: 1185ms
memory: 81216kb
input:
1000000 1000000 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 6478641409915854014 815888006180307319 6478641409915854014 6478641409915854014 37784...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749822 lines
Test #8:
score: 0
Accepted
time: 1245ms
memory: 81220kb
input:
1000000 1000000 8129239286682760854 3981028880940170401 2535635990161413927 8316479514668652599 5147316903112543089 4630570098268037408 8505388156841465368 2203883581249948495 581610100009626881 5079268521394939 1476469952815397946 4914699404295060276 4440084747042452220 2702894635900623841 90540586...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749812 lines
Test #9:
score: 0
Accepted
time: 1220ms
memory: 81224kb
input:
1000000 1000000 7320373167365396487 7320373167365396487 937526916087788458 7320373167365396487 7320373167365396487 7320373167365396487 6758767667984378025 7320373167365396487 7320373167365396487 7320373167365396487 5687396935769483606 1467370155631201061 3556475128226340387 2212274051825085385 77978...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 748638 lines
Test #10:
score: 0
Accepted
time: 0ms
memory: 7740kb
input:
2 2 3937866409909043622 2873041425983999763 2 2 3645842096674595914 2 1 5018240021376355677
output:
result:
ok 0 lines
Test #11:
score: 0
Accepted
time: 1202ms
memory: 81208kb
input:
1000000 1000000 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900813446099088166 4900...
output:
4900813446099088166 4899930503817200418 4900813446099088166 4899916948900413730 4899916948900413730 4899930503817200418 4899930503817200418 4899930503817200418 4899930503817200418 4900813446099088166 288230380446679040 288230380446679040 4899930503817200418 4899930503817200418 0 768 768 288230724044...
result:
ok 748697 lines
Test #12:
score: 0
Accepted
time: 1197ms
memory: 81348kb
input:
1000000 1000000 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896682234503638342 4896...
output:
4896682234503638342 4896682234503638342 4896682234503638342 82333682484117506 4896682234503638342 82333682484117506 9150188513918978 9150188513918978 4896682234503638342 4896682234503638342 9150188513918978 4896682234503638342 9150188513918978 4896682234503638342 4896682234503638342 9150188513918978...
result:
ok 748737 lines
Test #13:
score: 0
Accepted
time: 1211ms
memory: 79172kb
input:
1000000 1000000 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828086749355423563 5828...
output:
5828086749355423563 8192 0 0 1152921504793493761 0 0 0 134217728 5828086749355423563 4647719230811407937 0 0 0 0 4647719230811407937 4611686018427396096 0 0 4415226380288 0 0 0 0 4665729214006427657 0 0 4665729213955833856 0 4665733612138661120 0 0 4611686018429485056 4666015104295802624 0 0 0 0 0 4...
result:
ok 749804 lines
Test #14:
score: 0
Accepted
time: 1216ms
memory: 81212kb
input:
1000000 1000000 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970703737173261435 1970...
output:
18014398510006272 1970703737173261435 1970703737173261435 18014398510006272 1170935903116331008 1170935903116331008 1242993501449496576 72057598332903424 72127962782629888 72057594037927936 72057598333165568 70405251923968 0 0 0 0 0 0 0 673367418922088530 72127962782892032 18014398509481984 0 704052...
result:
ok 749806 lines
Test #15:
score: 0
Accepted
time: 1212ms
memory: 81204kb
input:
1000000 1000000 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268538845505400998 1268...
output:
1191203210145169410 0 0 0 0 0 0 0 8589934592 705069918064678 704786953404416 0 0 1268538845505400998 1268538845505400998 4503633987117056 8589934592 0 633318697730048 2251804108783616 0 0 0 0 4503599627374592 0 0 0 0 704791248371712 1099511627776 0 0 0 1268538845505400998 0 0 633318731153408 1268538...
result:
ok 749818 lines
Test #16:
score: 0
Accepted
time: 1198ms
memory: 81220kb
input:
1000000 1000000 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796374617094329340 8796...
output:
0 0 0 0 0 0 0 0 0 0 4612249037637189632 0 0 0 0 0 0 144115189706063880 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8219350795484238412 0 0 0 536870912 0 0 0 0 0 0 8214847195317895748 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144115188092633600 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 749921 lines
Test #17:
score: 0
Accepted
time: 1200ms
memory: 81228kb
input:
1000000 1000000 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639525139600828208 1639...
output:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 324259173170675712 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 288231492843216896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144115188075864064 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
ok 749798 lines
Test #18:
score: 0
Accepted
time: 1093ms
memory: 81220kb
input:
1000000 1000000 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451...
output:
504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866451 292733989738811392 504297928904866451 504297928904866451 504297928904866451 504297928904866451 504297928904866...
result:
ok 332866 lines
Test #19:
score: 0
Accepted
time: 1214ms
memory: 81212kb
input:
1000000 1000000 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984855923226151208 2984...
output:
2984855923226151208
result:
ok single line: '2984855923226151208'
Test #20:
score: 0
Accepted
time: 659ms
memory: 81216kb
input:
1000000 1000000 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067242734448201478 2067...
output:
0
result:
ok single line: '0'
Test #21:
score: 0
Accepted
time: 978ms
memory: 81204kb
input:
1000000 1000000 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549...
output:
4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 4549453206535718492 ...
result:
ok 1000000 lines
Test #22:
score: 0
Accepted
time: 1170ms
memory: 81168kb
input:
1000000 1000000 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275...
output:
508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316275 508429140500316...
result:
ok 749894 lines
Test #23:
score: 0
Accepted
time: 1084ms
memory: 81208kb
input:
1000000 1000000 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184554809109693663 6184...
output:
72057594037927936 108438303632146450 5819200270512603152 396527890631622850 4683745811488571528 6184554809109693663 0 72057594037927936 108438303632146450 6184554809109693663 6184554809109693663 72059793061183624 36099165763141632 4683745811488571528 6184554809109693663 6184554809109693663 720575940...
result:
ok 332716 lines
Test #24:
score: 0
Accepted
time: 1229ms
memory: 81220kb
input:
1000000 1000000 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665112799136011124 8665...
output:
8665112799136011124
result:
ok single line: '8665112799136011124'
Test #25:
score: 0
Accepted
time: 653ms
memory: 81352kb
input:
1000000 1000000 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747499610358061394 7747...
output:
0
result:
ok single line: '0'
Test #26:
score: -100
Time Limit Exceeded
input:
1000000 1000000 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006...
output:
1006338049885769895 1006338049885769895 865598272308383749 1006338049885769895 586620239750365190 1006338049885769895 1006338049885769895 577586652210266114 613615520096321538 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1006338049885769895 1125899906842624 1006338...