# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
773549 | neonaht | Paint By Numbers (IOI16_paint) | C++17 | 1 ms | 340 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 "paint.h"
#include <bits/stdc++.h>
#include <cstdlib>
using namespace std;
const int S_MAX_LEN = 200 * 1000 + 5;
int qs_[S_MAX_LEN], qsX[S_MAX_LEN], most_left[S_MAX_LEN], most_right[S_MAX_LEN], dpL[S_MAX_LEN][102], dpR[S_MAX_LEN][102];
std::string solve_puzzle(std::string s, std::vector<int> c) {
int sz = s.size(), k = c.size(), now = 0;
string res = "";
s = "_" + s + "_";
for(int i=1; i<=sz+1; i++) {
qs_[i] += qs_[i-1] + (s[i] == '_');
qsX[i] += qsX[i-1] + (s[i] == 'X');
}
for(int i=1; i<=sz; i++) {
if(s[i] == 'X' && now == 0) now = i;
else if(s[i] != 'X') now = 0;
most_left[i] = now;
}
now = 0;
for(int i=sz; i>=1; i--) {
if(s[i] == 'X' && now == 0) now = i;
else if(s[i] != 'X') now = 0;
# | 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... |