# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
131818 | DanerZein | Paint By Numbers (IOI16_paint) | C++14 | 2 ms | 376 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}
컴파일 시 표준 에러 (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... |