#include "bits/stdc++.h"
using namespace std;
#define endl '\n'
#define debug(x) cerr << #x << " == " << (x) << '\n';
#define all(x) begin(x), end(x)
using ll = long long;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fLL;
template<typename T>
bool chmax(T& x, T y) { return x < y ? (x = y, true) : false; }
constexpr int K = 20, L = 10;
int dp[1 << L][1 << L][L + 1];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> a(n), k(n);
for (auto& x : a) cin >> x;
for (auto& x : k) cin >> x;
vector<int> popcount(1 << K);
for (int mask = 1; mask < (1 << K); ++mask) {
popcount[mask] = 1 + popcount[mask & (mask - 1)];
}
vector<int> p(n + 1), opt(n + 1);
int m = 0, last = 0;
for (int i = 1; i <= n; ++i) {
int left = a[i - 1] & ((1 << L) - 1), right = a[i - 1] >> L;
for (int mask = 0; mask < (1 << L); ++mask) {
int x = k[i - 1] - popcount[mask & left];
if (0 <= x && x <= L && chmax(opt[i], opt[dp[mask][right][x]])) {
p[i] = dp[mask][right][x];
}
}
++opt[i];
for (int mask = 0; mask < (1 << L); ++mask) {
int& j = dp[left][mask][popcount[mask & right]];
if (opt[j] < opt[i]) j = i;
}
if (chmax(m, opt[i])) last = i;
}
vector<int> I;
while (last) {
I.push_back(last);
last = p[last];
}
reverse(all(I));
assert((int)I.size() == m);
cout << m << endl;
for (int j = 0; j < m; ++j) {
cout << I[j] << "\n "[j + 1 < m];
}
exit(0);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
4684 KB |
answer = 4 |
2 |
Correct |
4 ms |
4556 KB |
answer = 1 |
3 |
Correct |
4 ms |
4556 KB |
answer = 2 |
4 |
Correct |
4 ms |
4428 KB |
answer = 1 |
5 |
Correct |
6 ms |
4556 KB |
answer = 2 |
6 |
Correct |
4 ms |
4556 KB |
answer = 1 |
7 |
Correct |
4 ms |
4428 KB |
answer = 1 |
8 |
Correct |
7 ms |
5188 KB |
answer = 3 |
9 |
Correct |
8 ms |
5068 KB |
answer = 2 |
10 |
Correct |
6 ms |
5068 KB |
answer = 3 |
11 |
Correct |
6 ms |
5068 KB |
answer = 2 |
12 |
Correct |
7 ms |
5196 KB |
answer = 3 |
13 |
Correct |
7 ms |
5068 KB |
answer = 2 |
14 |
Correct |
10 ms |
4940 KB |
answer = 1 |
15 |
Correct |
9 ms |
5196 KB |
answer = 1 |
16 |
Correct |
11 ms |
5208 KB |
answer = 1 |
17 |
Correct |
8 ms |
5068 KB |
answer = 1 |
18 |
Correct |
5 ms |
4952 KB |
answer = 1 |
19 |
Correct |
5 ms |
4940 KB |
answer = 1 |
20 |
Correct |
5 ms |
4928 KB |
answer = 1 |
21 |
Correct |
5 ms |
4940 KB |
answer = 1 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
4684 KB |
answer = 4 |
2 |
Correct |
4 ms |
4556 KB |
answer = 1 |
3 |
Correct |
4 ms |
4556 KB |
answer = 2 |
4 |
Correct |
4 ms |
4428 KB |
answer = 1 |
5 |
Correct |
6 ms |
4556 KB |
answer = 2 |
6 |
Correct |
4 ms |
4556 KB |
answer = 1 |
7 |
Correct |
4 ms |
4428 KB |
answer = 1 |
8 |
Correct |
7 ms |
5188 KB |
answer = 3 |
9 |
Correct |
8 ms |
5068 KB |
answer = 2 |
10 |
Correct |
6 ms |
5068 KB |
answer = 3 |
11 |
Correct |
6 ms |
5068 KB |
answer = 2 |
12 |
Correct |
7 ms |
5196 KB |
answer = 3 |
13 |
Correct |
7 ms |
5068 KB |
answer = 2 |
14 |
Correct |
10 ms |
4940 KB |
answer = 1 |
15 |
Correct |
9 ms |
5196 KB |
answer = 1 |
16 |
Correct |
11 ms |
5208 KB |
answer = 1 |
17 |
Correct |
8 ms |
5068 KB |
answer = 1 |
18 |
Correct |
5 ms |
4952 KB |
answer = 1 |
19 |
Correct |
5 ms |
4940 KB |
answer = 1 |
20 |
Correct |
5 ms |
4928 KB |
answer = 1 |
21 |
Correct |
5 ms |
4940 KB |
answer = 1 |
22 |
Correct |
121 ms |
49364 KB |
answer = 358 |
23 |
Correct |
122 ms |
49228 KB |
answer = 336 |
24 |
Correct |
124 ms |
49292 KB |
answer = 339 |
25 |
Correct |
122 ms |
49416 KB |
answer = 357 |
26 |
Correct |
122 ms |
49224 KB |
answer = 354 |
27 |
Correct |
112 ms |
47100 KB |
answer = 333 |
28 |
Correct |
116 ms |
46868 KB |
answer = 314 |
29 |
Correct |
114 ms |
46348 KB |
answer = 322 |
30 |
Correct |
121 ms |
46916 KB |
answer = 339 |
31 |
Correct |
121 ms |
47144 KB |
answer = 351 |
32 |
Correct |
157 ms |
47360 KB |
answer = 1 |
33 |
Correct |
163 ms |
47560 KB |
answer = 1 |
34 |
Correct |
149 ms |
47000 KB |
answer = 1 |
35 |
Correct |
159 ms |
47688 KB |
answer = 1 |
36 |
Correct |
167 ms |
47300 KB |
answer = 1 |
37 |
Correct |
73 ms |
33336 KB |
answer = 1 |
38 |
Correct |
88 ms |
33180 KB |
answer = 1 |
39 |
Correct |
68 ms |
33108 KB |
answer = 1 |
40 |
Correct |
82 ms |
33092 KB |
answer = 1 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
4684 KB |
answer = 4 |
2 |
Correct |
4 ms |
4556 KB |
answer = 1 |
3 |
Correct |
4 ms |
4556 KB |
answer = 2 |
4 |
Correct |
4 ms |
4428 KB |
answer = 1 |
5 |
Correct |
6 ms |
4556 KB |
answer = 2 |
6 |
Correct |
4 ms |
4556 KB |
answer = 1 |
7 |
Correct |
4 ms |
4428 KB |
answer = 1 |
8 |
Correct |
7 ms |
5188 KB |
answer = 3 |
9 |
Correct |
8 ms |
5068 KB |
answer = 2 |
10 |
Correct |
6 ms |
5068 KB |
answer = 3 |
11 |
Correct |
6 ms |
5068 KB |
answer = 2 |
12 |
Correct |
7 ms |
5196 KB |
answer = 3 |
13 |
Correct |
7 ms |
5068 KB |
answer = 2 |
14 |
Correct |
10 ms |
4940 KB |
answer = 1 |
15 |
Correct |
9 ms |
5196 KB |
answer = 1 |
16 |
Correct |
11 ms |
5208 KB |
answer = 1 |
17 |
Correct |
8 ms |
5068 KB |
answer = 1 |
18 |
Correct |
5 ms |
4952 KB |
answer = 1 |
19 |
Correct |
5 ms |
4940 KB |
answer = 1 |
20 |
Correct |
5 ms |
4928 KB |
answer = 1 |
21 |
Correct |
5 ms |
4940 KB |
answer = 1 |
22 |
Correct |
121 ms |
49364 KB |
answer = 358 |
23 |
Correct |
122 ms |
49228 KB |
answer = 336 |
24 |
Correct |
124 ms |
49292 KB |
answer = 339 |
25 |
Correct |
122 ms |
49416 KB |
answer = 357 |
26 |
Correct |
122 ms |
49224 KB |
answer = 354 |
27 |
Correct |
112 ms |
47100 KB |
answer = 333 |
28 |
Correct |
116 ms |
46868 KB |
answer = 314 |
29 |
Correct |
114 ms |
46348 KB |
answer = 322 |
30 |
Correct |
121 ms |
46916 KB |
answer = 339 |
31 |
Correct |
121 ms |
47144 KB |
answer = 351 |
32 |
Correct |
157 ms |
47360 KB |
answer = 1 |
33 |
Correct |
163 ms |
47560 KB |
answer = 1 |
34 |
Correct |
149 ms |
47000 KB |
answer = 1 |
35 |
Correct |
159 ms |
47688 KB |
answer = 1 |
36 |
Correct |
167 ms |
47300 KB |
answer = 1 |
37 |
Correct |
73 ms |
33336 KB |
answer = 1 |
38 |
Correct |
88 ms |
33180 KB |
answer = 1 |
39 |
Correct |
68 ms |
33108 KB |
answer = 1 |
40 |
Correct |
82 ms |
33092 KB |
answer = 1 |
41 |
Correct |
749 ms |
17600 KB |
answer = 6296 |
42 |
Correct |
741 ms |
17596 KB |
answer = 6267 |
43 |
Correct |
719 ms |
17596 KB |
answer = 6264 |
44 |
Correct |
728 ms |
17668 KB |
answer = 6384 |
45 |
Correct |
768 ms |
17592 KB |
answer = 6272 |
46 |
Correct |
640 ms |
13252 KB |
answer = 6177 |
47 |
Correct |
695 ms |
13256 KB |
answer = 6144 |
48 |
Correct |
648 ms |
13264 KB |
answer = 6272 |
49 |
Correct |
623 ms |
13260 KB |
answer = 6241 |
50 |
Correct |
635 ms |
13260 KB |
answer = 6169 |
51 |
Correct |
339 ms |
9668 KB |
answer = 1 |
52 |
Correct |
326 ms |
9608 KB |
answer = 1 |
53 |
Correct |
395 ms |
9612 KB |
answer = 1 |
54 |
Correct |
325 ms |
9664 KB |
answer = 1 |
55 |
Correct |
404 ms |
9552 KB |
answer = 1 |
56 |
Correct |
865 ms |
9612 KB |
answer = 1426 |
57 |
Correct |
893 ms |
9692 KB |
answer = 1427 |
58 |
Correct |
874 ms |
9612 KB |
answer = 1428 |
59 |
Correct |
876 ms |
9616 KB |
answer = 1427 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
4684 KB |
answer = 4 |
2 |
Correct |
4 ms |
4556 KB |
answer = 1 |
3 |
Correct |
4 ms |
4556 KB |
answer = 2 |
4 |
Correct |
4 ms |
4428 KB |
answer = 1 |
5 |
Correct |
6 ms |
4556 KB |
answer = 2 |
6 |
Correct |
4 ms |
4556 KB |
answer = 1 |
7 |
Correct |
4 ms |
4428 KB |
answer = 1 |
8 |
Correct |
7 ms |
5188 KB |
answer = 3 |
9 |
Correct |
8 ms |
5068 KB |
answer = 2 |
10 |
Correct |
6 ms |
5068 KB |
answer = 3 |
11 |
Correct |
6 ms |
5068 KB |
answer = 2 |
12 |
Correct |
7 ms |
5196 KB |
answer = 3 |
13 |
Correct |
7 ms |
5068 KB |
answer = 2 |
14 |
Correct |
10 ms |
4940 KB |
answer = 1 |
15 |
Correct |
9 ms |
5196 KB |
answer = 1 |
16 |
Correct |
11 ms |
5208 KB |
answer = 1 |
17 |
Correct |
8 ms |
5068 KB |
answer = 1 |
18 |
Correct |
5 ms |
4952 KB |
answer = 1 |
19 |
Correct |
5 ms |
4940 KB |
answer = 1 |
20 |
Correct |
5 ms |
4928 KB |
answer = 1 |
21 |
Correct |
5 ms |
4940 KB |
answer = 1 |
22 |
Correct |
121 ms |
49364 KB |
answer = 358 |
23 |
Correct |
122 ms |
49228 KB |
answer = 336 |
24 |
Correct |
124 ms |
49292 KB |
answer = 339 |
25 |
Correct |
122 ms |
49416 KB |
answer = 357 |
26 |
Correct |
122 ms |
49224 KB |
answer = 354 |
27 |
Correct |
112 ms |
47100 KB |
answer = 333 |
28 |
Correct |
116 ms |
46868 KB |
answer = 314 |
29 |
Correct |
114 ms |
46348 KB |
answer = 322 |
30 |
Correct |
121 ms |
46916 KB |
answer = 339 |
31 |
Correct |
121 ms |
47144 KB |
answer = 351 |
32 |
Correct |
157 ms |
47360 KB |
answer = 1 |
33 |
Correct |
163 ms |
47560 KB |
answer = 1 |
34 |
Correct |
149 ms |
47000 KB |
answer = 1 |
35 |
Correct |
159 ms |
47688 KB |
answer = 1 |
36 |
Correct |
167 ms |
47300 KB |
answer = 1 |
37 |
Correct |
73 ms |
33336 KB |
answer = 1 |
38 |
Correct |
88 ms |
33180 KB |
answer = 1 |
39 |
Correct |
68 ms |
33108 KB |
answer = 1 |
40 |
Correct |
82 ms |
33092 KB |
answer = 1 |
41 |
Correct |
749 ms |
17600 KB |
answer = 6296 |
42 |
Correct |
741 ms |
17596 KB |
answer = 6267 |
43 |
Correct |
719 ms |
17596 KB |
answer = 6264 |
44 |
Correct |
728 ms |
17668 KB |
answer = 6384 |
45 |
Correct |
768 ms |
17592 KB |
answer = 6272 |
46 |
Correct |
640 ms |
13252 KB |
answer = 6177 |
47 |
Correct |
695 ms |
13256 KB |
answer = 6144 |
48 |
Correct |
648 ms |
13264 KB |
answer = 6272 |
49 |
Correct |
623 ms |
13260 KB |
answer = 6241 |
50 |
Correct |
635 ms |
13260 KB |
answer = 6169 |
51 |
Correct |
339 ms |
9668 KB |
answer = 1 |
52 |
Correct |
326 ms |
9608 KB |
answer = 1 |
53 |
Correct |
395 ms |
9612 KB |
answer = 1 |
54 |
Correct |
325 ms |
9664 KB |
answer = 1 |
55 |
Correct |
404 ms |
9552 KB |
answer = 1 |
56 |
Correct |
865 ms |
9612 KB |
answer = 1426 |
57 |
Correct |
893 ms |
9692 KB |
answer = 1427 |
58 |
Correct |
874 ms |
9612 KB |
answer = 1428 |
59 |
Correct |
876 ms |
9616 KB |
answer = 1427 |
60 |
Correct |
1936 ms |
51384 KB |
answer = 7034 |
61 |
Correct |
1903 ms |
51380 KB |
answer = 7045 |
62 |
Correct |
1956 ms |
51460 KB |
answer = 7147 |
63 |
Correct |
1939 ms |
51456 KB |
answer = 7038 |
64 |
Correct |
1896 ms |
51460 KB |
answer = 7169 |
65 |
Correct |
1898 ms |
51380 KB |
answer = 6735 |
66 |
Correct |
1888 ms |
51296 KB |
answer = 6713 |
67 |
Correct |
1900 ms |
51232 KB |
answer = 6748 |
68 |
Correct |
1867 ms |
51468 KB |
answer = 6607 |
69 |
Correct |
1884 ms |
51392 KB |
answer = 6722 |
70 |
Correct |
2657 ms |
51436 KB |
answer = 1 |
71 |
Correct |
2649 ms |
51344 KB |
answer = 1 |
72 |
Correct |
2680 ms |
51412 KB |
answer = 1 |
73 |
Correct |
2687 ms |
51340 KB |
answer = 1 |
74 |
Correct |
2667 ms |
51300 KB |
answer = 1 |
75 |
Correct |
1004 ms |
51356 KB |
answer = 1 |
76 |
Correct |
947 ms |
51348 KB |
answer = 1 |
77 |
Correct |
967 ms |
51340 KB |
answer = 1 |
78 |
Correct |
979 ms |
51268 KB |
answer = 1 |
79 |
Correct |
874 ms |
23972 KB |
answer = 21 |
80 |
Correct |
912 ms |
35012 KB |
answer = 7 |
81 |
Correct |
931 ms |
44056 KB |
answer = 3 |
82 |
Correct |
940 ms |
49140 KB |
answer = 2 |
83 |
Correct |
965 ms |
49064 KB |
answer = 1 |
84 |
Correct |
967 ms |
50896 KB |
answer = 1 |
85 |
Correct |
984 ms |
51268 KB |
answer = 1 |
86 |
Correct |
829 ms |
23760 KB |
answer = 11 |
87 |
Correct |
878 ms |
34984 KB |
answer = 11 |
88 |
Correct |
941 ms |
44020 KB |
answer = 6 |
89 |
Correct |
943 ms |
49184 KB |
answer = 4 |
90 |
Correct |
979 ms |
49104 KB |
answer = 2 |
91 |
Correct |
961 ms |
50908 KB |
answer = 2 |
92 |
Correct |
995 ms |
51368 KB |
answer = 2 |
93 |
Correct |
1910 ms |
51424 KB |
answer = 7211 |
94 |
Correct |
1898 ms |
51412 KB |
answer = 7032 |
95 |
Correct |
1896 ms |
51412 KB |
answer = 7092 |
96 |
Correct |
2527 ms |
51512 KB |
answer = 14167 |
97 |
Correct |
2544 ms |
51508 KB |
answer = 14159 |
98 |
Correct |
2545 ms |
51516 KB |
answer = 14125 |
99 |
Correct |
2557 ms |
51512 KB |
answer = 14121 |
100 |
Correct |
2538 ms |
51512 KB |
answer = 14010 |
101 |
Correct |
2570 ms |
51512 KB |
answer = 13976 |
102 |
Correct |
991 ms |
51372 KB |
answer = 3 |
103 |
Correct |
953 ms |
50860 KB |
answer = 2 |
104 |
Correct |
956 ms |
48996 KB |
answer = 3 |
105 |
Correct |
967 ms |
51364 KB |
answer = 2 |
106 |
Correct |
973 ms |
51032 KB |
answer = 3 |
107 |
Correct |
890 ms |
48976 KB |
answer = 4 |
108 |
Correct |
823 ms |
43988 KB |
answer = 5 |
109 |
Correct |
733 ms |
34908 KB |
answer = 8 |
110 |
Correct |
638 ms |
23848 KB |
answer = 22 |
111 |
Correct |
1909 ms |
51316 KB |
answer = 6760 |
112 |
Correct |
1925 ms |
51388 KB |
answer = 6788 |
113 |
Correct |
2047 ms |
51224 KB |
answer = 6632 |