제출 #1244988

#제출 시각아이디문제언어결과실행 시간메모리
1244988candi_ositosPaint By Numbers (IOI16_paint)C++20
10 / 100
930 ms589824 KiB
#include "paint.h" #include <bits/stdc++.h> #define fi first #define se second #define pb push_back using namespace std; string solve_puzzle(string s, vector <int> c){ s+="_"; int k=c.size(); int n=s.length(); vector < vector <pair <vector <int>, pair <int, int> > > > DP; DP.resize(n); if(s[0]!='_'){ DP[0].pb({{1}, {1, 0}}); } if(s[0]!='X'){ DP[0].pb({{0}, {0, 0}}); } for(int i=1; i<n; ++i){ for(int j=0; j<DP[i-1].size(); ++j){ if(DP[i-1][j].se.se==k){ if(s[i]!='X'){ DP[i].pb(DP[i-1][j]); DP[i][DP[i].size()-1].fi.pb(0); } } else if(DP[i-1][j].se.fi==c[DP[i-1][j].se.se]){ if(s[i]!='X'){ DP[i].pb({DP[i-1][j].fi, {0, DP[i-1][j].se.se+1}}); DP[i][DP[i].size()-1].fi.pb(0); } } else if(DP[i-1][j].se.fi==0){ if(s[i]!='_'){ DP[i].pb({DP[i-1][j].fi, {1, DP[i-1][j].se.se}}); DP[i][DP[i].size()-1].fi.pb(1); } if(s[i]!='X'){ DP[i].pb(DP[i-1][j]); DP[i][DP[i].size()-1].fi.pb(0); } } else{ if(s[i]!='_'){ DP[i].pb(DP[i-1][j]); DP[i][DP[i].size()-1].fi.pb(1); ++DP[i][DP[i].size()-1].se.fi; } } } DP[i-1].resize(0); } string fr=""; vector <vector <int> > TDP; for(int i=0; i<DP[n-1].size(); ++i){ if(DP[n-1][i].se.se==k && DP[n-1][i].se.fi==0){ TDP.pb(DP[n-1][i].fi); } } if(TDP.size()==0){ return fr; } for(int j=0; j<n-1; ++j){ int as=TDP[0][j]; for(int i=0; i<TDP.size(); ++i){ if(as!=TDP[i][j]){ fr+='?'; break; } if(i==TDP.size()-1){ if(TDP[i][j]==0){ fr+='_'; break; } fr+='X'; break; } } } return fr; }

컴파일 시 표준 에러 (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...