Submission #131817

#TimeUsernameProblemLanguageResultExecution timeMemory
131817DanerZeinPaint By Numbers (IOI16_paint)C++14
0 / 100
3 ms504 KiB
#include "paint.h" #include <bits/stdc++.h> using namespace std; std::string solve_puzzle(std::string s, std::vector<int> c) { string rp; rp.resize(s.size()); vector<int>id; vector<int> b; for(int i=0;i<s.size();i++){ if(s[i]=='_'){ b.push_back(i); } } b.push_back(s.size()); int k=0,l=0,r=0,bl=0; while(true){ printf("k: %d l: %d r: %d bl: %d b[bl]: %d\n",k,l,r,bl,b[bl]); if(k>=s.size()-1){ break; } /*if(rp.size()==s.size()){ break; }*/ if(c[r]<=b[bl]-l){ for(int i=0;i<c[r];i++){ rp[k]='X'; k++; } if(k<b[bl]){ l=k; rp[k]='_'; } else{ l=k; bl++; } r++; } else{ for(int i=0;i<b[bl];i++){ rp[k]='_'; k++; } l=k; bl++; } } cout<<rp<<endl; bool sw=0; // b.clear(); vector<int>lb,rb; for(int i=0;i<rp.size();i++){ if(rp[i]=='_' and rp[i+1]=='X'){ sw=0; rb.push_back(i); } if(rp[i]=='X' and rp[i+1]=='_'){ lb.push_back(i); } } cout<<rb.size()<<" "<<lb.size()<<endl; if(rp[rp.size()-1]!='_'){ rb.push_back(rp.size()); lb.push_back(rp.size()); } string ans; ans.resize(rp.size()); int j=0; int t=rb[0]-lb[0]; for(int i=0;i<rp.size();i++){ cout<<ans<<endl; cout<<"t: "<<t<<endl; cout<<"rb[j]: "<<rb[j]<<" lb[j]: "<<lb[j]<<endl; if(s[i]=='_'){ ans[i]='_'; } if(rp[i]=='X'){ if(rp[i+t]=='X' and rb[j]>=i+t){ ans[i+t]='X'; } else{ if(rb[j]>=i+t){ for(int j=i;j<i+t;j++){ ans[j]='?'; } } } if(ans[i]!='X') ans[i]='?'; } if(i>=rb[j]){ j++; t=rb[j]-lb[j]; } } return ans; }

Compilation message (stderr)

paint.cpp: In function 'std::__cxx11::string solve_puzzle(std::__cxx11::string, std::vector<int>)':
paint.cpp:10:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<s.size();i++){
                 ~^~~~~~~~~
paint.cpp:19:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if(k>=s.size()-1){
          ~^~~~~~~~~~~~
paint.cpp:54:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<rp.size();i++){
                 ~^~~~~~~~~~
paint.cpp:72:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<rp.size();i++){
                 ~^~~~~~~~~~
paint.cpp:51:10: warning: variable 'sw' set but not used [-Wunused-but-set-variable]
     bool sw=0;
          ^~
#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...