# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
88134 | Retro3014 | Paint By Numbers (IOI16_paint) | C++17 | 470 ms | 65620 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "paint.h"
#include <string>
#include <vector>
using namespace std;
#define MAX_N 200000
#define MAX_K 100
bool vst[MAX_N+10][MAX_K+10];
bool DP[MAX_N+10][MAX_K+10];
bool chk2[MAX_N+10];
int chk1[MAX_N+10];
int arr[MAX_N+10];
int N, K;
string str, ans;
vector<int> v;
bool tf=false;
/*bool put(int x, int y){
if(vst2[x][y]) return DP2[x][y];
vst2[x][y]=true;
if(x+v[y]>N){
DP2[x][y]=false;
return false;
}
for(int i=x; i<x+v[y]; i++){
if(str[i]=='_'){
DP2[x][y]=false;
return false;
}
}
if(x+v[y]==N || str[x+v[y]]!='X') DP2[x][y]=true;
return DP2[x][y];
}*/
bool check(int x, int y){
if(vst[x][y]){
return DP[x][y];
}
vst[x][y]=true;
bool b=false;
if(x>=N){
if(y==K) b=true;
DP[x][y]=b;
return b;
}
if(str[x]!='X' && (vst[x+1][y]?DP[x+1][y]:check(x+1, y))){
chk2[x]=true;
b=true;
}
if(y<K && x+v[y]<=N && (x+v[y]==N || str[x+v[y]]!='X') && arr[x]>=v[y] && (vst[x+v[y]+1][y+1]?DP[x+v[y]+1][y+1]:check(x+v[y]+1, y+1))){
chk1[x]++;
chk1[x+v[y]]--;
chk2[x+v[y]]=true;
b=true;
}
DP[x][y]=b;
return b;
}
string solve_puzzle(string s, vector<int> c) {
N=(int)s.size(); K=(int)c.size();
for(int i=0; i<s.size(); i++){
str.push_back(s[i]);
}
arr[N]=0;
for(int i=N-1; i>=0; i--){
if(str[i]=='_'){
arr[i]=0;
}else{
arr[i]=arr[i+1]+1;
}
}
for(int i=0; i<c.size(); i++){
v.push_back(c[i]);
}
check(0, 0);
for(int i=0; i<N; i++){
if(i!=0) chk1[i]+=chk1[i-1];
if(chk1[i]>0){
if(chk2[i]){
ans.push_back('?');
}
else{
ans.push_back('X');
}
}
else{
ans.push_back('_');
}
}
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |