#include <bits/stdc++.h>
#include <cassert>
#include "messy.h"
using namespace std;
vector<int> restore_permutation(int n, int w, int r) {
for (int len = n; len >= 2; len /= 2) {
for (int j = 0; j < n; j += len) {
string vi(n, '1');
for (int k = j; k < j + len; k++)
vi[k] = '0';
for (int k = j; k < j + len / 2; k++) {
vi[k] = '1';
// cout << vi << "\n";
add_element(vi);
vi[k] = '0';
}
}
}
compile_set();
vector<int> vl(n, 0), vr(n, n - 1);
for (int len = n; len >= 2; len /= 2) {
map<pair<int, int>, vector<int>> mpiivi;
for (int i = 0; i < n; i++)
mpiivi[{vl[i], vr[i]}].push_back(i);
string ask(n, '1');
for (auto [pii, vi] : mpiivi) {
for (auto a : vi)
ask[a] = '0';
for (auto a : vi) {
ask[a] = '1';
// cout << ask << "\n";
if (check_element(ask)) {
vr[a] = (vl[a] + vr[a]) / 2;
} else {
vl[a] = (vl[a] + vr[a]) / 2 + 1;
}
ask[a] = '0';
}
for (auto a : vi)
ask[a] = '1';
}
// for (int i = 0; i < n; i++)
// cout << vl[i] << " " << vr[i] << "\n";
}
assert(vl == vr);
return vl;
}
Compilation message (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... |