# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1244986 | porquenomedejainiciarsesion | Paint By Numbers (IOI16_paint) | C++20 | 1 ms | 328 KiB |
#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
string solve_puzzle(string s,vector<int> c) {
vector<char> V;
for(auto x:s){
V.push_back(x);
}
int l=0,r=0,suma=0;
int lsize=0,rsize=c.size();
for(auto x:c){
suma+=x;
}
r=suma;
int ind;
for(int i=0;i<s.size();i++){
if(r+rsize-1<s.size()-i){
V[i]='?';
}else{
ind=i;
break;
}
}
for(int i=ind;i<s.size();i++){
l=0;
r=suma;
lsize=0;
rsize=c.size();
bool ok=true;
for(int j=0;j<c.size();j++){
int a=r+rsize-1;
int b=s.size()-i;
int d=lsize-1+l;
if(a<b && d<=i){
V[i]='?';
ok=false;
break;
}
l+=c[j];
r-=c[j];
rsize--;
lsize++;
}
int a=r+rsize-1;
int b=s.size()-i;
int c=lsize-1+l;
if(a<b && c<=i){
V[i]='?';
ok=false;
}
if(ok){
V[i]='X';
}
}
string ans="";
if(c.size()-1+l+r==s.size()){
for(int i=0;i<s.size();i++){
if(V[i]=='?'){
V[i]='_';
}
}
}
for(auto x:V){
ans+=x;
}
return ans;
}
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... |