#include "paint.h"
#include <bits/stdc++.h>
using namespace std;
string solve_puzzle(string s, vector<int> c){
int n = s.size(), k = c.size();
string r;
vector<bool> No_blanco(n), Negro(n), Pieza(n);
vector< pair<int, int> > L_mites(k), Otros_extremos(k);
int i = 0;
for(int j = 0; j < k; j++){
int Bien = 0, Inicio = i;
for(int ci = i; ci < n; ci++){
if(s[ci] == '_'){
Inicio = ci + 1;
Bien = 0;
}
if(s[ci] == '.') Bien++;
if(Bien == c[j]){
Otros_extremos[j].second = ci;
i = ci + 2;
break;
}
}
L_mites[j].first = Inicio;
}
i = n - 1;
for(int j = k - 1; j > -1; j--){
int Bien = 0, Inicio = i;
for(int ci = i; ci > -1; ci--){
if(s[ci] == '_'){
Inicio = ci - 1;
Bien = 0;
}
if(s[ci] == '.') Bien++;
if(Bien == c[j]){
Otros_extremos[j].first = ci;
i = ci - 2;
break;
}
}
L_mites[j].second = Inicio;
}
for(int i = 0; i < k; i++){
for(; Otros_extremos[i].first <= Otros_extremos[i].second; Otros_extremos[i].first++){
Negro[Otros_extremos[i].first] = 1;
}
int Copia = L_mites[i].first, Bien = 0;
for(; L_mites[i].first <= L_mites[i].second; L_mites[i].first++){
No_blanco[L_mites[i].first] = 1;
if(s[L_mites[i].first] == '.') Bien++;
if(s[L_mites[i].first] == '_'){
Bien = 0;
Copia = L_mites[i].first + 1;
}
if(Bien >= c[i]){
for(; Copia <= L_mites[i].first; Copia++){
Pieza[Copia] = 1;
}
}
}
}
for(int i = 0; i < n; i++){
if(s[i] != '.'){
r += s[i];
continue;
}
if(!Pieza[i]) r += '_';
else if(Negro[i]) r += 'X';
else if(No_blanco[i]) r += '?';
else r += '_';
}
return r;
}
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... |