#include <bits/stdc++.h>
#include "messy.h"
using namespace std;
void make_queries(int l, int r, int n) {
if (r == l + 1) return;
int m = (l + r)/2;
string q(n, '0');
for (int i = l; i < r; ++i)
q[i] = '1';
for (int i = l; i < m; ++i) {
q[i] = '0';
add_element(q);
q[i] = '1';
}
make_queries(l, m, n);
make_queries(m, r, n);
}
void calc_answer(int l, int r, string &s, vector<int> &ans) {
int n = s.size();
if (r == l + 1) {
for (int i = 0; i < n; ++i)
if (s[i] == '1') ans[i] = l;
return;
}
string lft(n, '0'), rgt(n, '0');
for (int i = 0; i < n; ++i) if (s[i] == '1') {
s[i] = '0';
if (check_element(s)) lft[i] = '1';
else rgt[i] = '1';
s[i] = '1';
}
int m = (l + r)/2;
calc_answer(l, m, lft, ans);
calc_answer(m, r, rgt, ans);
}
vector<int> restore_permutation(int n, int _, int __) {
make_queries(0, n, n);
compile_set();
vector<int> ans(n);
string s(n, '1');
calc_answer(0, n, s, ans);
return ans;
}
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... |