# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
131820 | DanerZein | Paint By Numbers (IOI16_paint) | C++14 | 2 ms | 504 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 "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)
# | 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... |