#include<bits/stdc++.h>
using namespace std;
void add_element(std::string x);
bool check_element(std::string x);
void compile_set();
vector<int> Answer;
void solve(int n, int l, int r, vector<int> subset) {
cerr << l << " " << r << "\n";
if(l == r) {
Answer[subset[0]] = l;
return;
}
string bits(n, '1');
for(int e : subset) {
bits[e] = '0';
}
vector<int> subsetL, subsetR;
for(int e : subset) {
bits[e] = '1';
if(check_element(bits)) {
subsetL.push_back(e);
}
else {
subsetR.push_back(e);
}
bits[e] = '0';
}
int mid = (l + r) / 2;
solve(n, l, mid, subsetL);
solve(n, mid + 1, r, subsetR);
}
std::vector<int> restore_permutation(int n, int w, int r) {
for(int pw2 = 2; pw2 <= n; pw2 *= 2) {
for(int i = 0; i + pw2 - 1 < n; i += pw2) {
string bits(n, '1');
for(int j = 0; j < pw2; j++) {
bits[i + j] = '0';
}
for(int j = 0; j < pw2/2; j++) {
bits[i + j] = '1';
add_element(bits);
cerr << bits << "\n";
bits[i + j] = '0';
}
}
}
compile_set();
vector<int> vcc;
for(int i = 0; i < n; i++) {
vcc.push_back(i);
}
Answer.resize(n);
solve(n, 0, n - 1, vcc);
return Answer;
}
컴파일 시 표준 에러 (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... |