# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
361231 | Sparky_09 | Paint By Numbers (IOI16_paint) | C++17 | 1 ms | 384 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |