Submission #1044575

#TimeUsernameProblemLanguageResultExecution timeMemory
1044575fv3Paint By Numbers (IOI16_paint)C++14
7 / 100
0 ms348 KiB
#include "paint.h" #include <bits/stdc++.h> using namespace std; int N, M; string solve_puzzle(string s, vector<int> c) { N = s.size(); M = c.size(); vector<int> preSum(M); vector<int> sufSum(M, N); int l = 0; for (int i = 0; i < M; i++) { for (int j = l; j < l + c[i]; j++) { if (s[j] == '_') l = j + 1; } preSum[i] = l; l += c[i]; } int r = N - 1; for (int i = M - 1; i >= 0; i--) { for (int j = r; j > r - c[i]; j--) { if (s[j] == '_') r = j - 1; } sufSum[i] = r - c[i] + 1; r -= c[i]; } string res = s; for (int i = 0; i < M; i++) { for (int j = sufSum[i]; j < preSum[i] + c[i]; j++) res[j] = 'X'; } int cnt = 0; for (auto c : res) c=='X'&&cnt++; int sum = 0; for (auto n : c) sum += n; if (cnt == sum) { for (auto&c : res) { if (c == '.') c = '_'; } } else { for (auto&c : res) { if (c == '.') c = '?'; } } return res; }
#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...