#include <iostream>
#include <vector>
#include "messy.h"
using namespace std;
void write(int l, int r, string s){
if (l + 1 == r)
return;
string lft = s, rgt = s;
int mid = (l + r) / 2, sz = mid - l;
for (int i=0;i<sz;i++){
s[l + i] = '1';
add_element(s);
s[l + i] = '0';
lft[l + i] = '1';
rgt[mid + i] = '1';
}
write(l, mid, rgt);
write(mid, r, lft);
}
vector<int> num;
void read(int l, int r, string s, vector<int> vc){
if (l + 1 == r){
num[vc[0]] = l;
return;
}
vector<int> vl, vr;
string sl =s, sr =s;
for (int i : vc){
s[i] = '1';
if (check_element(s)){
vl.push_back(i);
sr[i] = '1';
}
else{
vr.push_back(i);
sl[i] = '1';
}
s[i] = '0';
}
read(l, (l + r) / 2, sl, vl);
read((l + r) / 2, r, sr, vr);
}
vector<int> restore_permutation(int n, int r, int w){
string s;
vector<int> v;
for (int i=0;i<n;i++)
s += '0', v.push_back(i);
num.resize(n);
write(0, n, s);
compile_set();
read(0, n, s, v);
return num;
}
컴파일 시 표준 에러 (stderr) 메시지
messy.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
messy_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~| # | 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... |