#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef tuple<int,int,int> trio;
typedef pair<int,int> pii;
const int MAXN = 2e5+5;
const int MOD = 1e9+7;
#define all(x) x.begin(), x.end()
#define mk make_pair
#define pb push_back
#define f first
#define s second
int pref[MAXN], pref2[MAXN];
bool dpL[2][MAXN][105], dpR[2][MAXN][105], val[2][MAXN];
string solve_puzzle(string a, vector<int> c) {
int n = a.size(), k = c.size();
for(int i = 1; i <= n; i++) pref[i] = pref[i-1] + (a[i-1] == '_');
dpL[0][0][0] = 1;
for(int i = 1; i <= n; i++) {
for(int j = 0; j <= k; j++) {
if(a[i-1] != 'X') dpL[0][i][j] = dpL[0][i-1][j] or dpL[1][i-1][j];
if(j and i >= c[j-1] and pref[i] == pref[i-c[j-1]])
dpL[1][i][j] = dpL[0][i-c[j-1]][j-1];
//cout << i << " " << j << " " << dpL[0][i][j] << " " << dpL[1][i][j] << "\n";
}
}
dpR[0][n+1][k] = 1;
for(int i = n; i >= 1; i--) {
for(int j = 0; j <= k; j++) {
if(a[i-1] != 'X') dpR[0][i][j] = dpR[0][i+1][j];
if(a[i-1] != '_') dpR[1][i][j] = dpR[0][i+1][j];
if(j<k and i + c[j] <= n+1 and pref[i] == pref[i+c[j]])
dpR[0][i][j] = dpR[1][i+c[j]][j+1];
//cout << i << " " << j << " " << dpR[0][i][j] << " " << dpR[1][i][j] << "\n";
if(dpL[0][i][j] and dpR[0][i][j]) val[0][i] = 1;
}
}
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= k; j++) {
if(i >= c[j-1] and pref[i] == pref[i-c[j-1]] and dpL[0][i-c[j-1]][j-1] and dpR[1][i][j])
pref2[i-c[j-1]+1]++, pref2[i+1]--;
}
}
for(int i = 1; i <= n; i++) {
pref2[i] += pref2[i-1];
if(pref2[i]) val[1][i] = 1;
}
string ans;
for(int i = 1; i <= n; i++) {
if(val[0][i] and val[1][i]) ans += '?';
else if(val[0][i]) ans += '_';
else ans += 'X';
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
8536 KB |
n = 13, m = 1 |
2 |
Correct |
1 ms |
8536 KB |
n = 18, m = 1 |
3 |
Correct |
1 ms |
8904 KB |
n = 17, m = 1 |
4 |
Correct |
1 ms |
8540 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
6 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
7 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
8536 KB |
n = 13, m = 1 |
2 |
Correct |
1 ms |
8536 KB |
n = 18, m = 1 |
3 |
Correct |
1 ms |
8904 KB |
n = 17, m = 1 |
4 |
Correct |
1 ms |
8540 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
6 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
7 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
8 |
Correct |
1 ms |
8536 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
8540 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
8540 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
8540 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
8644 KB |
n = 17, m = 6 |
14 |
Correct |
1 ms |
8540 KB |
n = 17, m = 1 |
15 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
8540 KB |
n = 13, m = 3 |
17 |
Correct |
1 ms |
8540 KB |
n = 18, m = 4 |
18 |
Correct |
1 ms |
8540 KB |
n = 20, m = 10 |
19 |
Correct |
1 ms |
8540 KB |
n = 19, m = 10 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
8536 KB |
n = 13, m = 1 |
2 |
Correct |
1 ms |
8536 KB |
n = 18, m = 1 |
3 |
Correct |
1 ms |
8904 KB |
n = 17, m = 1 |
4 |
Correct |
1 ms |
8540 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
6 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
7 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
8 |
Correct |
1 ms |
8536 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
8540 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
8540 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
8540 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
8644 KB |
n = 17, m = 6 |
14 |
Correct |
1 ms |
8540 KB |
n = 17, m = 1 |
15 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
8540 KB |
n = 13, m = 3 |
17 |
Correct |
1 ms |
8540 KB |
n = 18, m = 4 |
18 |
Correct |
1 ms |
8540 KB |
n = 20, m = 10 |
19 |
Correct |
1 ms |
8540 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
8696 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
8536 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
8640 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
8540 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
8540 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
8540 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
8540 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
8540 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
8540 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
8540 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
8736 KB |
n = 99, m = 50 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
8536 KB |
n = 13, m = 1 |
2 |
Correct |
1 ms |
8536 KB |
n = 18, m = 1 |
3 |
Correct |
1 ms |
8904 KB |
n = 17, m = 1 |
4 |
Correct |
1 ms |
8540 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
6 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
7 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
8 |
Correct |
1 ms |
8536 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
8540 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
8540 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
8540 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
8644 KB |
n = 17, m = 6 |
14 |
Correct |
1 ms |
8540 KB |
n = 17, m = 1 |
15 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
8540 KB |
n = 13, m = 3 |
17 |
Correct |
1 ms |
8540 KB |
n = 18, m = 4 |
18 |
Correct |
1 ms |
8540 KB |
n = 20, m = 10 |
19 |
Correct |
1 ms |
8540 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
8696 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
8536 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
8640 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
8540 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
8540 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
8540 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
8540 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
8540 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
8540 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
8540 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
8736 KB |
n = 99, m = 50 |
32 |
Correct |
2 ms |
8540 KB |
n = 13, m = 4 |
33 |
Correct |
2 ms |
8536 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
8540 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
36 |
Correct |
2 ms |
8540 KB |
n = 81, m = 6 |
37 |
Correct |
2 ms |
8540 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
8540 KB |
n = 92, m = 7 |
39 |
Correct |
2 ms |
8540 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
8536 KB |
n = 90, m = 21 |
41 |
Correct |
2 ms |
8540 KB |
n = 98, m = 22 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
8536 KB |
n = 13, m = 1 |
2 |
Correct |
1 ms |
8536 KB |
n = 18, m = 1 |
3 |
Correct |
1 ms |
8904 KB |
n = 17, m = 1 |
4 |
Correct |
1 ms |
8540 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
6 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
7 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
8 |
Correct |
1 ms |
8536 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
8540 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
8540 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
8540 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
8644 KB |
n = 17, m = 6 |
14 |
Correct |
1 ms |
8540 KB |
n = 17, m = 1 |
15 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
8540 KB |
n = 13, m = 3 |
17 |
Correct |
1 ms |
8540 KB |
n = 18, m = 4 |
18 |
Correct |
1 ms |
8540 KB |
n = 20, m = 10 |
19 |
Correct |
1 ms |
8540 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
8696 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
8536 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
8640 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
8540 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
8540 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
8540 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
8540 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
8540 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
8540 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
8540 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
8736 KB |
n = 99, m = 50 |
32 |
Correct |
2 ms |
8540 KB |
n = 13, m = 4 |
33 |
Correct |
2 ms |
8536 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
8540 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
36 |
Correct |
2 ms |
8540 KB |
n = 81, m = 6 |
37 |
Correct |
2 ms |
8540 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
8540 KB |
n = 92, m = 7 |
39 |
Correct |
2 ms |
8540 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
8536 KB |
n = 90, m = 21 |
41 |
Correct |
2 ms |
8540 KB |
n = 98, m = 22 |
42 |
Correct |
2 ms |
8540 KB |
n = 11, m = 2 |
43 |
Correct |
1 ms |
8540 KB |
n = 11, m = 2 |
44 |
Incorrect |
1 ms |
8540 KB |
char #0 differ - expected: '?', found: 'X' |
45 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
8536 KB |
n = 13, m = 1 |
2 |
Correct |
1 ms |
8536 KB |
n = 18, m = 1 |
3 |
Correct |
1 ms |
8904 KB |
n = 17, m = 1 |
4 |
Correct |
1 ms |
8540 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
6 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
7 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
8 |
Correct |
1 ms |
8536 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
8540 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
8540 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
8540 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
8644 KB |
n = 17, m = 6 |
14 |
Correct |
1 ms |
8540 KB |
n = 17, m = 1 |
15 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
8540 KB |
n = 13, m = 3 |
17 |
Correct |
1 ms |
8540 KB |
n = 18, m = 4 |
18 |
Correct |
1 ms |
8540 KB |
n = 20, m = 10 |
19 |
Correct |
1 ms |
8540 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
8696 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
8536 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
8640 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
8540 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
8540 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
8540 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
8540 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
8540 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
8540 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
8540 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
8736 KB |
n = 99, m = 50 |
32 |
Correct |
2 ms |
8540 KB |
n = 13, m = 4 |
33 |
Correct |
2 ms |
8536 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
8540 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
36 |
Correct |
2 ms |
8540 KB |
n = 81, m = 6 |
37 |
Correct |
2 ms |
8540 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
8540 KB |
n = 92, m = 7 |
39 |
Correct |
2 ms |
8540 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
8536 KB |
n = 90, m = 21 |
41 |
Correct |
2 ms |
8540 KB |
n = 98, m = 22 |
42 |
Correct |
2 ms |
8540 KB |
n = 11, m = 2 |
43 |
Correct |
1 ms |
8540 KB |
n = 11, m = 2 |
44 |
Incorrect |
1 ms |
8540 KB |
char #0 differ - expected: '?', found: 'X' |
45 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
8536 KB |
n = 13, m = 1 |
2 |
Correct |
1 ms |
8536 KB |
n = 18, m = 1 |
3 |
Correct |
1 ms |
8904 KB |
n = 17, m = 1 |
4 |
Correct |
1 ms |
8540 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
6 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
7 |
Correct |
1 ms |
8540 KB |
n = 20, m = 1 |
8 |
Correct |
1 ms |
8536 KB |
n = 20, m = 5 |
9 |
Correct |
1 ms |
8540 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
8540 KB |
n = 17, m = 2 |
11 |
Correct |
1 ms |
8540 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
8644 KB |
n = 17, m = 6 |
14 |
Correct |
1 ms |
8540 KB |
n = 17, m = 1 |
15 |
Correct |
1 ms |
8540 KB |
n = 17, m = 4 |
16 |
Correct |
2 ms |
8540 KB |
n = 13, m = 3 |
17 |
Correct |
1 ms |
8540 KB |
n = 18, m = 4 |
18 |
Correct |
1 ms |
8540 KB |
n = 20, m = 10 |
19 |
Correct |
1 ms |
8540 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
8696 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
8536 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
8640 KB |
n = 81, m = 4 |
24 |
Correct |
2 ms |
8540 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
8540 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
8540 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
8540 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
8540 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
8540 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
8540 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
8736 KB |
n = 99, m = 50 |
32 |
Correct |
2 ms |
8540 KB |
n = 13, m = 4 |
33 |
Correct |
2 ms |
8536 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
8540 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
8540 KB |
n = 86, m = 2 |
36 |
Correct |
2 ms |
8540 KB |
n = 81, m = 6 |
37 |
Correct |
2 ms |
8540 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
8540 KB |
n = 92, m = 7 |
39 |
Correct |
2 ms |
8540 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
8536 KB |
n = 90, m = 21 |
41 |
Correct |
2 ms |
8540 KB |
n = 98, m = 22 |
42 |
Correct |
2 ms |
8540 KB |
n = 11, m = 2 |
43 |
Correct |
1 ms |
8540 KB |
n = 11, m = 2 |
44 |
Incorrect |
1 ms |
8540 KB |
char #0 differ - expected: '?', found: 'X' |
45 |
Halted |
0 ms |
0 KB |
- |