제출 #1199883

#제출 시각아이디문제언어결과실행 시간메모리
1199883droopyPaint By Numbers (IOI16_paint)C++20
0 / 100
0 ms320 KiB
// Jesu juva #include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned ll #define pii pair<int,int> #define pll pair<ll,ll> #define vi vector<int> #define vll vector<ll> #define vull vector<ull> #define vb vector<bool> #define vpii vector<pii> #define vpll vector<pll> #define vvi vector<vi> #define vvb vector<vb> #define vvpii vector<vpii> #define f(i,x,n) for(int i=x;i<n;i++) #define fe(i,x,n) for (int i=x;i<=n;i++) #define fr(i,x,n) for(int i=x;i>n;i--) #define fre(i,x,n) for(int i=x;i>=n;i--) #define fll(i,x,n) for (ll i=x;i<n;i++) string dp(string s, int idx, int c[],int k, int &sz) { if (idx >= s.length()) { return s; } string w="", b=""; if (s[idx]!='X') { if (idx+c[sz]-c[k-1]+sz-k<s.length()) { char tmp=s[idx]; s[idx]='_'; w = dp(s,idx+1,c,k,sz); s[idx]=tmp; } } bool hitFlat=false; if (k <= sz && s[idx]!='_') { if (idx+c[k]-c[k-1]-1 < s.length()) { f(i,idx,idx+c[k]-c[k-1]) { if (s[i]!='_') s[i] = 'X'; else { //cout<<"HITFLAT"<<endl; hitFlat=true; break; } } if (!hitFlat) { if (idx+c[k]-c[k-1]<s.length()) { if (s[idx+c[k]-c[k-1]]!='X') { s[idx+c[k]-c[k-1]] = '_'; b=dp(s,idx+c[k]-c[k-1]+1,c,k+1,sz); } } else b=dp(s,idx+c[k]-c[k-1],c,k+1,sz); } } } if (b.length()+w.length()==0) { //cout << idx<<' '<<k<<' '<<s<<' ' <<"NOTHING"<<endl<<endl; return ""; } else { if (b.length()>0 && w.length()>0) { f(i,0,s.length()) { if (b[i]!=w[i]) { s[i]='?'; } else s[i]=b[i]; } //cout << idx<<' '<<k<<' '<<s<<endl<<endl; return s; } else if (b.length()>0) { //cout << idx<<' '<<k<<' '<<b<<endl<<endl; return b; } else { //cout << idx<<' '<<k<<' '<<w<<endl<<endl; return w; } } } string solve_puzzle(string s, vi c) { int m=c.size(); int x[m+1]={0}; fe(i,1,m) { x[i] = x[i-1]+c[i-1]; } string res =dp(s,0,x,1,m); if (res=="") { cout<<"WHADDAHELLY "<<s<<' '; f(i,0,m) { cout<<c[i]<<' '; } cout<<endl; } cout<<res<<endl; } /* int main() { ios::sync_with_stdio(false); cin.tie(0); vi c={3}; cout<< solve_puzzle(".X........",c); }*/ // soli Deo gloria

컴파일 시 표준 에러 (stderr) 메시지

paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:109:1: warning: no return statement in function returning non-void [-Wreturn-type]
  109 | }
      | ^
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...