Submission #361231

#TimeUsernameProblemLanguageResultExecution timeMemory
361231Sparky_09Paint By Numbers (IOI16_paint)C++17
32 / 100
1 ms384 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() typedef long long ll; typedef pair<ll, ll> pii; typedef vector<ll> vi; typedef vector<pii> vpi; void usaco(string s){ freopen((s+".in").c_str(), "r", stdin); freopen((s+".out").c_str(), "w", stdout); } const int N = 2e5+5; int pref[N],rpref[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; } rpref[k-1] = n-1; for(int i = k-1; i>0; i--){ rpref[i-1] = rpref[i] - c[i] - 1; } string ans(n,'?'); for(int i = 0; i<n; i++){ if(s[i] == '_') ans[i] = '_'; } for(int i=0;i<k;i++){ int l,r; r=rpref[i]; l=pref[i]; vector<int>v; for(int j=l;j<=r;j++){ if(ans[j]=='_'){ v.push_back(j); } } 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; 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; for(;r<=l;r++) ans[r]='X'; } } for(int i=0;i<n;i++){ if(ans[i-1]=='X'&&ans[i+1]=='X'&&ans[i]=='?') ans[i]='_'; } return ans; }

Compilation message (stderr)

paint.cpp: In function 'std::string solve_puzzle(std::string, std::vector<int>)':
paint.cpp:47:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |             for(int q=0;q<v.size();q++){
      |                         ~^~~~~~~~~
paint.cpp: In function 'void usaco(std::string)':
paint.cpp:12:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   12 |   freopen((s+".in").c_str(), "r", stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
paint.cpp:13:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   13 |   freopen((s+".out").c_str(), "w", stdout);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...