# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
917309 | velislavgarkov | Paint By Numbers (IOI16_paint) | C++14 | 268 ms | 132372 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 <iostream>
#include <vector>
using namespace std;
const int MAXN=2e5+10;
const int MAXK=1e2+10;
string s;
int c[MAXK];
int lef[MAXN], ri[MAXN], pr[MAXN][MAXK];
bool ok[2][MAXN][MAXK];
int n, k;
int get_gr(int ind, int i) {
if (ind==0) return lef[i];
return n-ri[n-i+1]+1;
}
void find_dp(int ind) {
int cur;
ok[ind][0][0]=true;
for (int i=1;i<=n+1;i++) {
if (s[i]=='X') ok[ind][i][0]=false;
else ok[ind][i][0]=ok[ind][i-1][0];
for (int j=1;j<=k;j++) {
ok[ind][i][j]=false;
if (s[i]=='X') continue;
ok[ind][i][j]=ok[ind][i-1][j];
if (i-c[j]-1<0) continue;
cur=get_gr(ind,i-1);
if (cur<=i-c[j]-1) {
if (ok[ind][i-c[j]-1][j-1]) {
ok[ind][i][j]=true;
# | 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... |