Submission #1245100

#TimeUsernameProblemLanguageResultExecution timeMemory
1245100GabrielPaint By Numbers (IOI16_paint)C++20
59 / 100
0 ms328 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...