Submission #311458

#TimeUsernameProblemLanguageResultExecution timeMemory
311458amunduzbaevPaint By Numbers (IOI16_paint)C++14
7 / 100
1 ms384 KiB
//#include "grader.cpp" #include "paint.h" #include <bits/stdc++.h> using namespace std; const int N = 2e5+5; int pref[N],suf[N]; string solve_puzzle(string s, vector<int> c) { int n=s.size(), k=c.size(); for(int i=1;i<k;i++){ pref[i]=pref[i-1]+c[i-1]+1; } suf[k-1]=n-1; for(int i=k-1;i>0;i--){ suf[i-1]=suf[i]-c[i]-1; } string ans=s; for(int i=0;i<k;i++){ int l,r; r=suf[i]; l=pref[i]; // cout<<l<<" "<<r<<"\n"; vector<int>v; for(int j=l;j<=r;j++){ if(ans[j]=='_'){ v.push_back(j); //cout<<j<<" "; } } //cout<<"\n\n"; if(v.size()){ int left=l,right=r; int st=l; for(int q=0;q<v.size();q++){ if(q) st=v[q-1]; int lx=v[q]-c[i]+1,rx=st+c[i]-1; //cout<<st<<" "<<v[q]<<"\n"; //cout<<lx<<" "<<rx<<"\n"; //cout<<"\n"; left=max(left,lx); right=min(rx,right); } for(;left<=right;left++) ans[left]='X'; }else{ r=r-c[i]+1; l=l+c[i]-1; // cout<<l<<" "<<r<<"\n"; for(;r<=l;r++) ans[r]='X'; } } for(int i=0;i<n;i++){ if(ans[i-1]!='.'&&ans[i+1]!='.'&&ans[i]=='.') ans[i]='_'; } for(int i=0;i<n;i++){ if(ans[i]=='.') ans[i]='?'; } return ans; } /* ..._._.... 1 3 .......... 1 7 .......... 2 3 4 */

Compilation message (stderr)

paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:33:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |             for(int q=0;q<v.size();q++){
      |                         ~^~~~~~~~~
#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...