| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 596199 | Ahmed57 | Paint By Numbers (IOI16_paint) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "paint.h"
using namespace std;
string solve_puzzle(string s, int k, int c[]){
int ww[s.size()]={0},bb[s.size()]={0};
int n = s.size();
for(int i = 0;i<(1<<n);i++){
int cnt = 0 , idx = 0;
bool ss = 1;
for(int j = 0;j<n;j++){
if(i&(1<<j)){
cnt++;
}else{
if(cnt!=0){
if(idx>=k||c[idx]!=cnt){
ss = 0;
break;
}
idx++;
cnt = 0;
}
}
}
if(cnt!=0){
if(idx>=k||c[idx]!=cnt){
continue;
}
idx++;
}
if(ss&&idx==k){
for(int j = 0;j<n;j++){
if(i&(1<<j))ww[j] = 1;
else bb[j] = 1;
}
}
}
string v;
for(int i = 0;i<n;i++){
if(bb[i]&&ww[i])v+='?';
else if(bb[i])v+='_';
else v+='X';
}
return v;
}
/*
int main(){
string s;cin>>s;
int k;cin>>k;
int arr[k];
for(int i = 0;i<k;i++){
cin>>arr[i];
}
cout<<solve_puzzle(s,k,arr);
}
*/
