#include <bits/stdc++.h>
#include <cstdlib>
using namespace std;
int n,m;
int pre[105];
int suf[105];
bool ok[105][105];
bool bad[105][5005];
bool vis[105][105];
bool dp[105][105];
vector<int> nabba(105);
string bahma;
bool dfs(int x,int y){
//cout <<n<<" "<<m<<endl;
//cout <<x<<" "<<y<<" "<<vis[x][y]<<endl;
if(x>n+1) return dp[x][y]=false;
if(y==m){
if(x<=n){
//cout <<x<<endl;
if(suf[n]-suf[x-1]>0) return false;
bad[x][n-x]=true;
}
return dp[x][y]=true;
}
if(vis[x][y]) return dp[x][y];
vis[x][y]=true;
//x++;
if(bahma[x]!='X'&&dfs(x+1,y)){
bad[x][0]=true;
}
for (int i = x; i <= n-nabba[y]; ++i)
{
if(suf[i-1]-suf[x-1]>0) break;
if((pre[i+nabba[y]-1]-pre[i-1])==0&&(suf[i+nabba[y]]-suf[i+nabba[y]-1])==0){
//cout <<suf[10+nabba[y]]-pre[10+nabba[y]-1]<<endl;
dp[i][y]|=dfs(i+nabba[y]+1,y+1);
dp[x][y]|=dp[i][y];
//dp[i][y]|=dfs(i+nabba[y],y+1);
//if(x==10) cout <<i<<" "<<nabba[y]<<" "<<y<<" "<<dp[x][y]<<endl;
if(dp[i][y]){
ok[i][y]=true;
if(i-x>0) bad[x][i-x-1]=true;
bad[i+nabba[y]][0]=true;
//cout <<x<<" "<<i<<" "<<y<<endl;
}
//cout <<x<<" "<<i<<" "<<i+nabba[y]+1<<" "<<y+1<<endl;
}
}
//cout <<"end "<<" "<<x<<" "<<y<<" "<<dp[x][y]<<endl;
return dp[x][y];
}
std::string solve_puzzle(std::string s, std::vector<int> c) {
//if(s=="..._._....") return "???___????";
//if(s==".X........") return "?XX?______";
m=c.size();
nabba=c;
s='#'+s;
bahma=s;
n=s.size();
//cout <<n<<endl;
for (int i = 1; i <= n; ++i)
{
if(s[i]=='_') pre[i]=1;
else if(s[i]=='X') suf[i]=1;
pre[i]+=pre[i-1];
suf[i]+=suf[i-1];
}
dfs(1,0);
for (int i = 1; i <= n; ++i)
{
for (int j = 0; j < m; ++j)
{
if(ok[i][j]){
//cout <<i<<" "<<j<<endl;
for (int k = i; k <= i+c[j]-1; ++k)
{
ok[k][104]=true;
}
}
}
}
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)
{
if(bad[i][j]){
for (int k = i; k <= i+j; ++k)
{
bad[k][0]=true;
}
}
}
}
string res="";
for (int i = 1; i <= n; ++i)
{
//cout <<res<<endl;
//cout <<ok[i][0]<<" ";
if(s[i]!='.') res.push_back(s[i]);
else if(ok[i][104]&&bad[i][0]) res.push_back('?');
else if(ok[i][104]) res.push_back('X');
else res.push_back('_');
}
return res;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 13, m = 1 |
2 |
Correct |
0 ms |
348 KB |
n = 18, m = 1 |
3 |
Correct |
0 ms |
444 KB |
n = 17, m = 1 |
4 |
Correct |
0 ms |
344 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
348 KB |
n = 20, m = 1 |
6 |
Correct |
0 ms |
348 KB |
n = 20, m = 1 |
7 |
Correct |
0 ms |
344 KB |
n = 20, m = 1 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 13, m = 1 |
2 |
Correct |
0 ms |
348 KB |
n = 18, m = 1 |
3 |
Correct |
0 ms |
444 KB |
n = 17, m = 1 |
4 |
Correct |
0 ms |
344 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
348 KB |
n = 20, m = 1 |
6 |
Correct |
0 ms |
348 KB |
n = 20, m = 1 |
7 |
Correct |
0 ms |
344 KB |
n = 20, m = 1 |
8 |
Correct |
0 ms |
348 KB |
n = 20, m = 5 |
9 |
Correct |
0 ms |
348 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
348 KB |
n = 17, m = 2 |
11 |
Correct |
0 ms |
348 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
460 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
344 KB |
n = 17, m = 6 |
14 |
Correct |
0 ms |
348 KB |
n = 17, m = 1 |
15 |
Correct |
0 ms |
348 KB |
n = 17, m = 4 |
16 |
Correct |
1 ms |
444 KB |
n = 13, m = 3 |
17 |
Correct |
0 ms |
348 KB |
n = 18, m = 4 |
18 |
Correct |
0 ms |
348 KB |
n = 20, m = 10 |
19 |
Correct |
0 ms |
348 KB |
n = 19, m = 10 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 13, m = 1 |
2 |
Correct |
0 ms |
348 KB |
n = 18, m = 1 |
3 |
Correct |
0 ms |
444 KB |
n = 17, m = 1 |
4 |
Correct |
0 ms |
344 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
348 KB |
n = 20, m = 1 |
6 |
Correct |
0 ms |
348 KB |
n = 20, m = 1 |
7 |
Correct |
0 ms |
344 KB |
n = 20, m = 1 |
8 |
Correct |
0 ms |
348 KB |
n = 20, m = 5 |
9 |
Correct |
0 ms |
348 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
348 KB |
n = 17, m = 2 |
11 |
Correct |
0 ms |
348 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
460 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
344 KB |
n = 17, m = 6 |
14 |
Correct |
0 ms |
348 KB |
n = 17, m = 1 |
15 |
Correct |
0 ms |
348 KB |
n = 17, m = 4 |
16 |
Correct |
1 ms |
444 KB |
n = 13, m = 3 |
17 |
Correct |
0 ms |
348 KB |
n = 18, m = 4 |
18 |
Correct |
0 ms |
348 KB |
n = 20, m = 10 |
19 |
Correct |
0 ms |
348 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
860 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
604 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
604 KB |
n = 81, m = 4 |
24 |
Correct |
1 ms |
356 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
604 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
608 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
348 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
604 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
348 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
860 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
604 KB |
n = 99, m = 50 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 13, m = 1 |
2 |
Correct |
0 ms |
348 KB |
n = 18, m = 1 |
3 |
Correct |
0 ms |
444 KB |
n = 17, m = 1 |
4 |
Correct |
0 ms |
344 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
348 KB |
n = 20, m = 1 |
6 |
Correct |
0 ms |
348 KB |
n = 20, m = 1 |
7 |
Correct |
0 ms |
344 KB |
n = 20, m = 1 |
8 |
Correct |
0 ms |
348 KB |
n = 20, m = 5 |
9 |
Correct |
0 ms |
348 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
348 KB |
n = 17, m = 2 |
11 |
Correct |
0 ms |
348 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
460 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
344 KB |
n = 17, m = 6 |
14 |
Correct |
0 ms |
348 KB |
n = 17, m = 1 |
15 |
Correct |
0 ms |
348 KB |
n = 17, m = 4 |
16 |
Correct |
1 ms |
444 KB |
n = 13, m = 3 |
17 |
Correct |
0 ms |
348 KB |
n = 18, m = 4 |
18 |
Correct |
0 ms |
348 KB |
n = 20, m = 10 |
19 |
Correct |
0 ms |
348 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
860 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
604 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
604 KB |
n = 81, m = 4 |
24 |
Correct |
1 ms |
356 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
604 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
608 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
348 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
604 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
348 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
860 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
604 KB |
n = 99, m = 50 |
32 |
Correct |
1 ms |
544 KB |
n = 13, m = 4 |
33 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
604 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
612 KB |
n = 86, m = 2 |
36 |
Correct |
1 ms |
604 KB |
n = 81, m = 6 |
37 |
Correct |
1 ms |
860 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
860 KB |
n = 92, m = 7 |
39 |
Correct |
1 ms |
604 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
860 KB |
n = 90, m = 21 |
41 |
Correct |
1 ms |
860 KB |
n = 98, m = 22 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 13, m = 1 |
2 |
Correct |
0 ms |
348 KB |
n = 18, m = 1 |
3 |
Correct |
0 ms |
444 KB |
n = 17, m = 1 |
4 |
Correct |
0 ms |
344 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
348 KB |
n = 20, m = 1 |
6 |
Correct |
0 ms |
348 KB |
n = 20, m = 1 |
7 |
Correct |
0 ms |
344 KB |
n = 20, m = 1 |
8 |
Correct |
0 ms |
348 KB |
n = 20, m = 5 |
9 |
Correct |
0 ms |
348 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
348 KB |
n = 17, m = 2 |
11 |
Correct |
0 ms |
348 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
460 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
344 KB |
n = 17, m = 6 |
14 |
Correct |
0 ms |
348 KB |
n = 17, m = 1 |
15 |
Correct |
0 ms |
348 KB |
n = 17, m = 4 |
16 |
Correct |
1 ms |
444 KB |
n = 13, m = 3 |
17 |
Correct |
0 ms |
348 KB |
n = 18, m = 4 |
18 |
Correct |
0 ms |
348 KB |
n = 20, m = 10 |
19 |
Correct |
0 ms |
348 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
860 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
604 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
604 KB |
n = 81, m = 4 |
24 |
Correct |
1 ms |
356 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
604 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
608 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
348 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
604 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
348 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
860 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
604 KB |
n = 99, m = 50 |
32 |
Correct |
1 ms |
544 KB |
n = 13, m = 4 |
33 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
604 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
612 KB |
n = 86, m = 2 |
36 |
Correct |
1 ms |
604 KB |
n = 81, m = 6 |
37 |
Correct |
1 ms |
860 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
860 KB |
n = 92, m = 7 |
39 |
Correct |
1 ms |
604 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
860 KB |
n = 90, m = 21 |
41 |
Correct |
1 ms |
860 KB |
n = 98, m = 22 |
42 |
Correct |
1 ms |
344 KB |
n = 11, m = 2 |
43 |
Correct |
0 ms |
348 KB |
n = 11, m = 2 |
44 |
Incorrect |
0 ms |
348 KB |
char #1 differ - expected: '_', found: '?' |
45 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 13, m = 1 |
2 |
Correct |
0 ms |
348 KB |
n = 18, m = 1 |
3 |
Correct |
0 ms |
444 KB |
n = 17, m = 1 |
4 |
Correct |
0 ms |
344 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
348 KB |
n = 20, m = 1 |
6 |
Correct |
0 ms |
348 KB |
n = 20, m = 1 |
7 |
Correct |
0 ms |
344 KB |
n = 20, m = 1 |
8 |
Correct |
0 ms |
348 KB |
n = 20, m = 5 |
9 |
Correct |
0 ms |
348 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
348 KB |
n = 17, m = 2 |
11 |
Correct |
0 ms |
348 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
460 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
344 KB |
n = 17, m = 6 |
14 |
Correct |
0 ms |
348 KB |
n = 17, m = 1 |
15 |
Correct |
0 ms |
348 KB |
n = 17, m = 4 |
16 |
Correct |
1 ms |
444 KB |
n = 13, m = 3 |
17 |
Correct |
0 ms |
348 KB |
n = 18, m = 4 |
18 |
Correct |
0 ms |
348 KB |
n = 20, m = 10 |
19 |
Correct |
0 ms |
348 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
860 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
604 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
604 KB |
n = 81, m = 4 |
24 |
Correct |
1 ms |
356 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
604 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
608 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
348 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
604 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
348 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
860 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
604 KB |
n = 99, m = 50 |
32 |
Correct |
1 ms |
544 KB |
n = 13, m = 4 |
33 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
604 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
612 KB |
n = 86, m = 2 |
36 |
Correct |
1 ms |
604 KB |
n = 81, m = 6 |
37 |
Correct |
1 ms |
860 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
860 KB |
n = 92, m = 7 |
39 |
Correct |
1 ms |
604 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
860 KB |
n = 90, m = 21 |
41 |
Correct |
1 ms |
860 KB |
n = 98, m = 22 |
42 |
Correct |
1 ms |
344 KB |
n = 11, m = 2 |
43 |
Correct |
0 ms |
348 KB |
n = 11, m = 2 |
44 |
Incorrect |
0 ms |
348 KB |
char #1 differ - expected: '_', found: '?' |
45 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 13, m = 1 |
2 |
Correct |
0 ms |
348 KB |
n = 18, m = 1 |
3 |
Correct |
0 ms |
444 KB |
n = 17, m = 1 |
4 |
Correct |
0 ms |
344 KB |
n = 1, m = 1 |
5 |
Correct |
1 ms |
348 KB |
n = 20, m = 1 |
6 |
Correct |
0 ms |
348 KB |
n = 20, m = 1 |
7 |
Correct |
0 ms |
344 KB |
n = 20, m = 1 |
8 |
Correct |
0 ms |
348 KB |
n = 20, m = 5 |
9 |
Correct |
0 ms |
348 KB |
n = 18, m = 3 |
10 |
Correct |
1 ms |
348 KB |
n = 17, m = 2 |
11 |
Correct |
0 ms |
348 KB |
n = 20, m = 2 |
12 |
Correct |
1 ms |
460 KB |
n = 17, m = 4 |
13 |
Correct |
1 ms |
344 KB |
n = 17, m = 6 |
14 |
Correct |
0 ms |
348 KB |
n = 17, m = 1 |
15 |
Correct |
0 ms |
348 KB |
n = 17, m = 4 |
16 |
Correct |
1 ms |
444 KB |
n = 13, m = 3 |
17 |
Correct |
0 ms |
348 KB |
n = 18, m = 4 |
18 |
Correct |
0 ms |
348 KB |
n = 20, m = 10 |
19 |
Correct |
0 ms |
348 KB |
n = 19, m = 10 |
20 |
Correct |
1 ms |
860 KB |
n = 100, m = 5 |
21 |
Correct |
1 ms |
604 KB |
n = 90, m = 3 |
22 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
23 |
Correct |
1 ms |
604 KB |
n = 81, m = 4 |
24 |
Correct |
1 ms |
356 KB |
n = 89, m = 10 |
25 |
Correct |
1 ms |
604 KB |
n = 81, m = 23 |
26 |
Correct |
1 ms |
608 KB |
n = 86, m = 8 |
27 |
Correct |
1 ms |
348 KB |
n = 53, m = 22 |
28 |
Correct |
1 ms |
604 KB |
n = 89, m = 35 |
29 |
Correct |
1 ms |
348 KB |
n = 63, m = 25 |
30 |
Correct |
1 ms |
860 KB |
n = 100, m = 50 |
31 |
Correct |
1 ms |
604 KB |
n = 99, m = 50 |
32 |
Correct |
1 ms |
544 KB |
n = 13, m = 4 |
33 |
Correct |
1 ms |
604 KB |
n = 86, m = 2 |
34 |
Correct |
1 ms |
604 KB |
n = 88, m = 2 |
35 |
Correct |
1 ms |
612 KB |
n = 86, m = 2 |
36 |
Correct |
1 ms |
604 KB |
n = 81, m = 6 |
37 |
Correct |
1 ms |
860 KB |
n = 98, m = 7 |
38 |
Correct |
1 ms |
860 KB |
n = 92, m = 7 |
39 |
Correct |
1 ms |
604 KB |
n = 88, m = 21 |
40 |
Correct |
1 ms |
860 KB |
n = 90, m = 21 |
41 |
Correct |
1 ms |
860 KB |
n = 98, m = 22 |
42 |
Correct |
1 ms |
344 KB |
n = 11, m = 2 |
43 |
Correct |
0 ms |
348 KB |
n = 11, m = 2 |
44 |
Incorrect |
0 ms |
348 KB |
char #1 differ - expected: '_', found: '?' |
45 |
Halted |
0 ms |
0 KB |
- |