QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#449857 | #8598. AND Масив | bashkort# | 25 | 1365ms | 463124kb | C++20 | 2.2kb | 2024-06-21 18:24:05 | 2024-06-21 18:24:06 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, b;
cin >> n >> b;
vector<int> a(n);
vector<ll> suf(n + 1);
for (int i = 0; i < n; ++i) {
cin >> a[i];
if (a[i] == 0) {
suf[i] += (i + 1);
}
}
for (int i = n - 1; i >= 0; --i) {
suf[i] += suf[i + 1];
}
vector<ll> ans(n);
for (int i = 0; i < n; ++i) {
ans[i] += b * suf[i];
}
const int nb = 1 << b;
vector stk(nb, vector<int>{});
vector<int> value(n * b), timer(n * b);
int l = b / 2, r = b - l;
int nl = (1 << l), nr = (1 << r);
auto insert = [&](int id) {
int x = value[id];
int lx = x & (nl - 1);
int ix = lx;
int rx = x >> l << l;
timer[id] += 1;
while (true) {
stk[lx + rx].push_back(id * 21 + timer[id]);
if (lx + 1 == nl) {
break;
}
lx = (lx + 1) | ix;
}
};
auto update = [&](int x, int add, int orz) {
vector<int> now;
int lx = x & (nl - 1);
int rx = x >> l;
int ix = rx;
while (true) {
int f = lx + (rx << l);
now.insert(now.end(), stk[f].begin(), stk[f].end());
stk[f].clear();
stk[f].shrink_to_fit();
if (rx == 0) {
break;
}
rx = (rx - 1) & ix;
}
for (int tt : now) {
int i = tt / 21;
int t = tt - i * 21;
if (timer[i] != t) {
continue;
}
value[i] |= orz;
ans[i % n] += add;
insert(i);
}
};
for (int i = 0; i < n; ++i) {
for (int j = 0; j < b; ++j) {
value[j * n + i] = 1 << j;
insert(j * n + i);
}
if (a[i] != 0) {
update(nb - 1 - a[i], i + 1, a[i]);
}
}
for (int i = 0; i < n; ++i) {
cout << ans[i] << " \n"[i == n - 1];
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 295ms
memory: 128864kb
input:
2000 20 251931 620255 725521 330111 783060 690627 489092 1019106 84341 631993 231500 920886 604265 342966 152434 588032 469990 805072 809795 12697 699326 433747 754394 567737 603087 199524 539078 775214 872735 454953 106496 93877 933762 36223 211878 168057 53977 782675 171782 455544 869778 47128 955...
output:
10212 4259 4815 9101 17193 17617 22629 16642 10432 10731 11766 20234 27120 17990 24654 22106 18877 14050 9217 10109 4283 9341 11741 13465 13724 9572 11200 4046 7660 7001 6512 12634 13360 10494 19745 15300 12727 17726 14188 10472 12754 7995 10571 11290 14862 19370 16785 13328 13589 17425 23190 17082 ...
result:
ok single line: '10212 4259 4815 9101 17193 176...6 39925 39961 39974 43987 18000'
Test #2:
score: 0
Accepted
time: 1086ms
memory: 387044kb
input:
2000 20 2080 32772 278528 256 2560 1056 528384 2056 132 144 768 98304 36864 262152 262400 81920 264192 16448 294912 786432 8194 16388 9 520 49152 2 262272 20 131584 528384 514 4352 12288 36 32800 72 16392 32 129 8 1028 131080 12288 8193 8320 528 1026 24576 8192 10240 163840 524288 262400 278528 2785...
output:
10532 10275 11389 7400 12269 14740 10975 9199 12307 10890 12090 11861 12707 12449 12586 12195 12260 14273 18795 18089 19280 21369 14169 17819 13755 16253 14945 14538 24799 24439 23275 17968 19797 19977 21225 18864 16595 21665 22140 32768 31494 29782 27849 20911 26304 21480 25191 22840 30738 26969 22...
result:
ok single line: '10532 10275 11389 7400 12269 1...111837 109909 73963 71982 36000'
Test #3:
score: 0
Accepted
time: 746ms
memory: 219164kb
input:
2000 20 81937 164096 131652 98564 263184 69665 2596 557184 286848 22544 49416 196872 65816 2179 45056 135232 352 1120 8832 32801 131776 98328 528385 51456 266400 396288 65573 328200 528512 26 65700 2248 8328 322 557312 16516 34050 66624 721152 45060 524353 2448 65984 16899 20993 137 265248 33808 665...
output:
10265 12832 12649 13394 14831 13921 19818 8209 7716 12652 12292 11823 12491 12133 17047 7964 8283 15911 12563 12580 12125 10806 12966 12370 19648 11631 12192 16886 17717 20174 20336 25578 15349 16556 21621 20009 14907 18092 15498 24250 21725 21223 14614 15274 10702 16692 16601 15963 14431 23066 1801...
result:
ok single line: '10265 12832 12649 13394 14831 ...8 75882 73929 95952 63984 32000'
Subtask #2:
score: 0
Time Limit Exceeded
Test #4:
score: 0
Time Limit Exceeded
input:
100000 20 262144 16 65536 8 256 1024 32 262144 16 262144 256 1024 1 64 2 131072 4096 2048 2 32 8192 4 2 262144 32768 1 524288 262144 262144 2048 8 64 1 2 8192 131072 256 64 8192 1 262144 4 32 4 524288 1 32768 16 64 128 8192 16 32 4096 16384 16384 4 131072 32768 16384 131072 2 16 2048 32768 16 4 4096...
output:
result:
Subtask #3:
score: 15
Accepted
Test #6:
score: 15
Accepted
time: 220ms
memory: 20396kb
input:
100000 8 98 78 5 190 79 234 162 79 118 176 115 130 10 9 233 56 97 15 148 13 46 87 92 65 150 62 50 46 159 101 48 86 203 71 29 124 23 228 55 161 240 80 139 74 251 143 167 207 183 52 50 252 17 185 40 145 167 164 227 166 172 60 182 62 173 227 232 243 251 134 109 241 44 33 217 149 51 6 110 201 242 196 23...
output:
152631657 152630131 152630001 152630939 152631411 152631998 152630663 152631609 152631606 152630657 152631172 152632208 152631468 152631040 152631058 152630747 152631208 152630998 152631307 152631149 152631038 152631013 152631782 152631146 152631829 152632118 152632297 152632294 152631891 152632567 ...
result:
ok single line: '152631657 152630131 152630001 ...4 1199980 1199981 699995 500000'
Test #7:
score: 0
Accepted
time: 319ms
memory: 24976kb
input:
100000 8 132 32 160 18 136 6 72 24 129 32 5 96 128 33 144 12 3 68 24 132 144 128 80 12 40 36 130 132 3 5 144 136 33 65 3 18 24 68 2 4 17 5 129 17 80 24 80 66 96 3 80 132 40 24 33 4 16 32 16 160 136 65 68 36 17 33 48 130 129 132 72 144 136 80 32 4 72 130 12 2 68 80 3 16 144 72 18 66 160 72 5 12 96 33...
output:
5952637 5952720 5953709 5952776 5952715 5952598 5952795 5953843 5953869 5954350 5953227 5952731 5953557 5953953 5953969 5953654 5952917 5952989 5954434 5954010 5954470 5953077 5954247 5953906 5953896 5954919 5954403 5954223 5953545 5953497 5953678 5953920 5954491 5954953 5954882 5954021 5954016 5954...
result:
ok single line: '5952637 5952720 5953709 595277...1 1299969 799987 1199994 600000'
Test #8:
score: 0
Accepted
time: 217ms
memory: 22308kb
input:
100000 8 141 194 198 43 134 49 74 204 148 34 240 131 116 50 147 146 20 76 161 60 99 38 3 38 98 24 164 98 240 149 99 163 27 82 108 184 37 26 102 152 25 3 77 78 73 141 53 137 78 130 226 81 212 226 162 149 41 177 112 29 7 197 216 13 74 154 161 28 50 99 113 216 14 57 134 131 135 51 6 69 141 73 116 194 7...
output:
4055305 4050887 4052706 4047838 4067390 4067423 4056658 4059069 4044709 4044152 4050128 4050231 4087336 4087869 4062113 4069179 4054377 4053586 4047213 4080771 4060526 4077103 4045902 4077653 4042666 4050004 4061909 4050714 4046983 4048224 4041638 4049613 4093973 4080069 4071289 4050701 4067381 4049...
result:
ok single line: '4055305 4050887 4052706 404783...974 799983 799989 699995 400000'
Test #9:
score: 0
Accepted
time: 137ms
memory: 21496kb
input:
100000 8 124 54 93 174 195 135 125 181 30 79 220 243 226 188 57 193 148 73 234 185 187 119 205 143 234 191 151 222 135 198 153 113 180 75 79 62 204 175 150 204 248 59 165 232 124 207 171 15 105 211 241 47 235 181 99 46 109 38 187 222 27 218 149 158 106 196 143 146 59 118 151 185 246 22 215 51 209 11...
output:
8334577 8411953 8475901 8619180 8653164 8489145 8500880 8394518 8477544 8448102 8432858 8562386 8402286 8379389 8400932 8370201 8397679 8371556 8408604 8457393 8490636 8418500 8324620 8331736 8301641 8278722 8296598 8312416 8381676 8311669 8389405 8526662 8512198 8463133 8270940 8316768 8345109 8249...
result:
ok single line: '8334577 8411953 8475901 861918...977 799983 699990 699996 500000'
Test #10:
score: 0
Accepted
time: 156ms
memory: 63960kb
input:
100000 8 9 2 3 8 5 69 5 3 67 9 11 5 6 10 5 6 5 4 5 21 6 10 6 10 9 137 2 8 3 67 1 5 9 5 8 9 6 2 6 5 10 12 6 8 9 6 10 3 10 6 9 5 6 3 1 9 4 2 3 9 1 9 4 9 10 6 1 9 3 6 10 6 8 2 9 6 5 9 5 1 5 8 4 9 6 4 5 6 9 8 12 8 4 2 8 5 4 9 10 4 2 6 5 2 5 1 4 132 3 9 6 70 5 9 8 5 3 11 10 9 3 6 9 10 18 10 3 5 4 8 3 8 9...
output:
210888808 210888792 210888825 210888885 210888889 210695006 210888901 210889018 210695102 210888908 210888918 210888940 210888996 210888949 210889001 210889024 210889009 210889167 210889030 210884920 210889091 210889379 210889105 210889452 210889468 210609577 210889672 210889451 210889500 210695597 ...
result:
ok single line: '210888808 210888792 210888825 ...976 599983 599988 599995 400000'
Test #11:
score: 0
Accepted
time: 155ms
memory: 55796kb
input:
100000 8 6 132 129 5 4 5 128 1 129 5 2 128 5 2 129 5 132 1 129 1 5 13 6 132 5 6 129 5 2 4 132 5 6 1 4 2 6 132 5 132 128 129 132 5 132 6 10 128 129 128 132 128 4 6 130 6 132 129 4 5 4 5 6 129 6 8 6 1 4 132 129 137 6 1 5 129 161 128 129 145 5 4 6 5 1 128 5 6 5 1 5 6 132 2 6 130 128 130 129 5 2 128 2 1...
output:
102876418 102876497 102876497 102876524 102876578 102876561 102876753 102876788 102876694 102876630 102876648 102876669 102876774 102876732 102876693 102876941 102876827 102876924 102876733 102876938 102876957 102876591 102876796 102876930 102876984 102876813 102876975 102877083 102877299 102877348 ...
result:
ok single line: '102876418 102876497 102876497 ...975 699982 699987 699994 600000'
Test #12:
score: 0
Accepted
time: 177ms
memory: 95436kb
input:
100000 8 128 130 64 68 64 128 136 64 128 192 128 64 192 128 160 128 160 128 160 128 64 0 0 0 0 64 128 64 128 160 0 128 64 128 160 128 136 128 64 72 128 64 192 128 64 66 64 128 64 96 64 192 64 128 132 128 136 128 64 128 192 128 130 0 64 128 192 64 96 0 0 128 160 128 64 128 64 66 64 65 0 144 64 128 13...
output:
4529471788 4529097423 4529471823 4529172203 4529471837 4529471858 4529246891 4529471879 4529471907 4529471843 4529471921 4529471942 4529471873 4529472005 4529470225 4529472019 4529470239 4529472033 4529470253 4529472047 4529472096 4529472131 4529471955 4529471771 4529471579 4529471379 4529471393 452...
result:
ok single line: '4529471788 4529097423 45294718... 1499980 1499986 1399994 800000'
Subtask #4:
score: 0
Memory Limit Exceeded
Dependency #3:
100%
Accepted
Test #13:
score: 15
Accepted
time: 633ms
memory: 26852kb
input:
100000 12 1699 3853 2080 3113 1621 1093 1489 3535 3677 2642 910 3652 1475 2806 1692 766 1965 1550 2260 2540 1510 1476 2726 480 2923 3526 3269 3492 3137 3775 3045 2721 97 3067 1196 3539 3870 3216 2142 2031 1966 3108 3002 2564 3903 1602 178 2907 1123 3860 889 3607 1474 1719 3621 3869 1211 626 242 1673...
output:
16382341 16361818 16367923 16348883 16344610 16333084 16342996 16335969 16337411 16326940 16328076 16341795 16339977 16338632 16340764 16331520 16336347 16338440 16342590 16355874 16359684 16363133 16392553 16350018 16347637 16337586 16344148 16348104 16333350 16346050 16339229 16338909 16353593 163...
result:
ok single line: '16382341 16361818 16367923 163... 1499973 1799975 1099989 400000'
Test #14:
score: 0
Accepted
time: 1365ms
memory: 190744kb
input:
100000 12 2049 130 516 2560 2 40 2049 132 1280 576 33 1536 2 288 2560 2056 2064 192 3 96 65 33 2176 2052 68 260 129 2049 513 640 2304 40 2064 72 520 128 2052 80 160 260 640 68 160 4 20 384 36 2112 2064 1040 2052 6 258 129 2064 34 1028 132 6 1026 132 24 2049 5 2056 1032 132 3072 257 160 258 1152 96 3...
output:
3110 3178 1395 1397 1542 1630 1898 1739 2622 3471 2144 2904 4424 3508 4815 4839 4581 5483 5491 5242 4685 5315 5350 4987 4503 4830 4697 4657 4235 5119 5152 4680 5381 5268 6636 5042 5574 5406 5609 5764 6490 5498 5007 4780 6103 5691 6779 7774 7296 7086 6457 7188 6990 8593 7797 7755 7436 7305 7740 7335 ...
result:
ok single line: '3110 3178 1395 1397 1542 1630 ...3999940 2999970 1999990 1000000'
Test #15:
score: 0
Accepted
time: 934ms
memory: 51344kb
input:
100000 12 528 2196 1286 840 1097 14 2070 139 208 3584 424 3120 261 2368 288 3076 2241 3840 140 1300 2752 401 268 41 600 194 2592 2212 1576 2309 262 3585 2057 1282 208 660 1065 2568 649 2055 2432 1664 330 676 593 1416 75 3076 77 392 2081 2072 3264 1061 261 1028 3216 152 2309 1105 1289 2089 1037 2200 ...
output:
66249 75050 110721 61035 54040 111677 58954 116979 49170 58688 125786 150725 90737 21917 86382 98728 81829 108359 110586 78603 47797 20835 36789 50587 79205 139612 100946 144124 102704 116408 115307 99200 79850 87656 103778 55543 122810 57512 98374 114999 93791 105126 90827 54006 89190 160559 141509...
result:
ok single line: '66249 75050 110721 61035 54040...9 1099971 1099981 999992 800000'
Test #16:
score: 0
Accepted
time: 559ms
memory: 34404kb
input:
100000 12 2131 2156 2732 1813 2171 740 3844 92 372 3652 2666 2755 1462 2257 679 538 286 3221 2156 1733 2250 3214 284 866 860 1549 1139 570 1035 3107 498 2736 2656 2595 1254 2281 1348 3219 701 1009 1802 344 315 1358 1925 684 2150 845 1537 1043 2862 1197 3848 2461 3459 139 345 2281 972 159 2830 542 66...
output:
537144 356701 335532 445369 472146 655423 761096 811341 560192 495239 376861 327762 406683 509443 214676 370502 289867 328810 385286 205681 158608 180987 288410 472282 779702 780970 883890 505115 620968 544578 735782 772613 605386 432150 155021 155812 249465 534080 248805 442566 444144 449809 553900...
result:
ok single line: '537144 356701 335532 445369 47...963 999975 999984 799994 500000'
Test #17:
score: 0
Accepted
time: 807ms
memory: 463124kb
input:
100000 12 4 17 1 33 6 70 33 1 9 17 24 32 288 9 17 18 20 33 35 33 32 3 33 34 16 24 17 6 34 9 16 20 24 20 6 12 14 18 5 12 9 17 5 34 17 2 6 3 18 10 3 17 33 18 10 18 3 5 1 10 2 18 24 33 6 9 4 18 24 17 24 17 6 9 6 2054 10 3 9 5 1 20 9 10 12 16 33 20 8 18 17 32 24 1 2 12 24 2072 33 9 8 12 24 10 5 9 10 12 ...
output:
119303222 119302748 119302201 119302096 119302126 119297829 119302386 119302516 119302590 119302980 119302688 119302658 118960827 119302757 119303214 119302738 119303488 119303318 119302755 119303338 119303033 119303535 119303290 119303195 119303570 119303118 119304046 119303636 119303318 119303721 ...
result:
ok single line: '119303222 119302748 119302201 ...968 999977 899986 799994 700000'
Test #18:
score: 0
Accepted
time: 795ms
memory: 365024kb
input:
100000 12 6 20 36 6 48 18 20 36 34 6 34 20 1056 1040 1041 34 1026 1040 32 4 48 2096 6 4 2 1040 4 18 2 34 1040 16 1024 8 20 4 1028 4 18 2066 32 1040 1024 32 1028 48 1026 8 20 1026 6 1026 10 20 52 18 1056 34 1056 18 34 2 18 1040 10 20 34 1056 1024 6 48 36 34 2 4 6 1056 1040 34 18 6 1040 1056 18 2 16 1...
output:
26293120 26293170 26293155 26293193 26293290 26293241 26293226 26293263 26293308 26293318 26293333 26293335 26293725 26293404 25785709 26293450 26293737 26293724 26293804 26293877 26293661 26230890 26293830 26294090 26294123 26294134 26294193 26294292 26294316 26293949 26294679 26295019 26294634 262...
result:
ok single line: '26293120 26293170 26293155 262...957 999970 999981 599995 400000'
Test #19:
score: -15
Memory Limit Exceeded
input:
100000 12 0 2048 3072 512 1024 2048 2112 2048 2049 512 1024 2048 1024 1536 1024 1040 2048 2049 1024 512 1024 2048 2052 1024 1088 1024 512 2048 1024 1028 2048 2049 2048 2056 2048 2050 2048 1024 1040 1024 512 1024 2048 512 1024 1280 2048 1024 512 1536 1024 512 1024 0 2064 1024 512 2048 2112 2048 2560 ...
output:
6397044299 6397044287 6397044251 6397044331 6397044397 6397044463 6396709155 6397044485 6396211009 6397044529 6397044639 6397044661 6397044716 6397044528 6397044738 6396543722 6397044782 6396211307 6397044837 6397044859 6397044936 6397044969 6396378845 6397045035 6396709727 6397045057 6397045090 639...
result:
Subtask #5:
score: 0
Skipped
Dependency #4:
0%
Subtask #6:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%