Submission #1244252

#TimeUsernameProblemLanguageResultExecution timeMemory
1244252edga1Paint By Numbers (IOI16_paint)C++20
59 / 100
1 ms328 KiB
#include <bits/stdc++.h> #include "paint.h" #include <cstdlib> #define fi first #define se second using namespace std; string solve_puzzle(string s, vector<int> c) { int n=s.length(),k=c.size(); vector<pair<int,int>> lm(k),rm(k); int p=0; for(int i=0; i<k; i++){ for(int j=0; j<c[i]; j++){ if(s[p+j]=='_'){ p+=j+1; j=-1; } } lm[i]={p,p+c[i]-1}; p=p+c[i]+1; } p=n-1; for(int i=k-1; i>=0; i--){ for(int j=0; j<c[i]; j++){ if(s[p-j]=='_'){ p-=j+1; j=-1; } } rm[i]={p-c[i]+1,p}; p=p-c[i]-1; } string r; for(int i=0; i<n; i++) r+="?"; vector<int> g(n,1); for(int i=0; i<k; i++){ for(int j=rm[i].fi; j<=lm[i].se; j++) r[j]='X'; for(int sa=lm[i].fi; sa<=rm[i].fi; sa++){ int d=1; for(int pp=0; pp<c[i]; pp++){ if(s[sa+pp]=='_') d=0; } if(d){ for(int pp=0; pp<c[i]; pp++){ g[sa+pp]=0; } } } } for(int i=0; i<n; i++){ if(g[i] || s[i]=='_') r[i]='_'; } return r; }

Compilation message (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...