#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
string solve_puzzle(string s, vector<int> vect){
int n=s.size(), k=vect.size();
string ans(n, '.');
s = '.'+s;
vect.insert(vect.begin(), 0);
vector<int> psum(n+1, 0);
for (int i=1; i<=n; ++i)psum[i]=psum[i-1]+(s[i]=='_');
vector<vector<int> > dp(n+1, vector<int>(k+1, 0));
for (int i=0; i<=n; ++i)if (s[i]!='X')dp[i][0]=1;
for (int i=1; i<=n; ++i)for (int j=1; j<=k; ++j){
if (s[i]!='X'&&dp[i-1][j])dp[i][j]|=1;
if (j==1&&vect[j]<=i&&psum[i]==psum[i-vect[j]]&&dp[i-vect[j]][j-1])dp[i][j]|=2;
if (j!=1&&vect[j]<i&&psum[i]==psum[i-vect[j]]&&s[i-vect[j]]!='X'&&dp[i-vect[j]-1][j-1])dp[i][j]|=2;
}
int i=n, j=k;
while (i){
if (dp[i][j]&2){
for (int p=i; p>i-vect[j]; --p)ans[p-1]='X';
ans[i-vect[j]-1]='_';
i=i-vect[j]-1, --j;
}
else ans[i-1]='_', --i;
}
return ans;
}
Compilation message (stderr)
paint.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
paint_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |