# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1266817 | vtnoo | Paint By Numbers (IOI16_paint) | C++20 | 98 ms | 424 KiB |
#include <bits/stdc++.h>
using namespace std;
const int MAXN=100;
int on[MAXN], off[MAXN];
std::string solve_puzzle(std::string s, std::vector<int> c){
int n=s.size(), m=c.size(), tot=0;
for(int msk=0;msk<(1<<n);msk++){
vector<int> v(20, 0);
for(int i=0;i<n;i++){
if((1<<i)&msk){
v[i]=1;
}
}
bool ok=true;
int j=0, i=0;
while(i<n){
int cnt=0;
bool entro=false;
while(i<n&&v[i]){
entro=true;
i++;
cnt++;
}
if(cnt!=0&&j==m){
ok=false;
break;
}
else if(j<m&&cnt==c[j]){
j++;
}else if(entro){
ok=false;
break;
}
i++;
}
if(j!=(int)c.size()){
ok=false;
}
if(ok){
tot++;
for(int i=0;i<n;i++){
if(v[i])on[i]++;
else off[i]++;
}
}
}
string ret="";
for(int i=0;i<n;i++){
if(on[i]==tot){
ret+='X';
}else if(off[i]==tot){
ret+='_';
}else ret+='?';
}
return ret;
}
Compilation message (stderr)
# | 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... |