#include<bits/stdc++.h>
#include "messy.h"
using namespace std;
string s;
vector<int> ans;
int n;
void rec1(int l, int r) {
if (l == r) return;
int m = (l + r) / 2;
for (int i = 0; i < n; i++) s[i] = '1';
for (int i = l; i <= r; i++) s[i] = '0';
for (int i = l; i <= m; i++) {
s[i] = '1';
add_element(s);
s[i] = '0';
}
rec1(l, m);
rec1(m + 1, r);
}
void rec2(int l, int r, vector<int> v) {
if (l == r) {
ans[v[0]] = l;
return;
}
int m = (l + r) / 2;
for (int i = 0; i < n; i++) s[i] = '1';
for (int x : v) s[x] = '0';
vector<int> vl, vr;
for (int x : v) {
s[x] = '1';
if (check_element(s)) vl.push_back(x);
else vr.push_back(x);
s[x] = '0';
}
rec2(l, m, vl);
rec2(m + 1, r, vr);
}
std::vector<int> restore_permutation(int n1, int w, int r) {
n = n1;
s.resize(n);
ans.resize(n);
rec1(0, n - 1);
compile_set();
vector<int> v;
for (int i = 0; i < n; i++) v.push_back(i);
rec2(0, n - 1, v);
return(ans);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
n = 8 |
2 |
Correct |
4 ms |
128 KB |
n = 8 |
3 |
Correct |
5 ms |
376 KB |
n = 8 |
4 |
Correct |
5 ms |
256 KB |
n = 8 |
5 |
Correct |
5 ms |
256 KB |
n = 8 |
6 |
Correct |
4 ms |
248 KB |
n = 8 |
7 |
Correct |
5 ms |
256 KB |
n = 8 |
8 |
Correct |
5 ms |
248 KB |
n = 8 |
9 |
Correct |
5 ms |
376 KB |
n = 8 |
10 |
Correct |
5 ms |
376 KB |
n = 8 |
11 |
Correct |
5 ms |
376 KB |
n = 8 |
12 |
Correct |
5 ms |
256 KB |
n = 8 |
13 |
Correct |
5 ms |
256 KB |
n = 8 |
14 |
Correct |
5 ms |
376 KB |
n = 8 |
15 |
Correct |
5 ms |
376 KB |
n = 8 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
n = 32 |
2 |
Correct |
5 ms |
376 KB |
n = 32 |
3 |
Correct |
5 ms |
376 KB |
n = 32 |
4 |
Correct |
5 ms |
256 KB |
n = 32 |
5 |
Correct |
5 ms |
376 KB |
n = 32 |
6 |
Correct |
5 ms |
376 KB |
n = 32 |
7 |
Correct |
5 ms |
376 KB |
n = 32 |
8 |
Correct |
5 ms |
376 KB |
n = 32 |
9 |
Correct |
5 ms |
376 KB |
n = 32 |
10 |
Correct |
5 ms |
376 KB |
n = 32 |
11 |
Correct |
5 ms |
376 KB |
n = 32 |
12 |
Correct |
5 ms |
380 KB |
n = 32 |
13 |
Correct |
5 ms |
376 KB |
n = 32 |
14 |
Correct |
5 ms |
380 KB |
n = 32 |
15 |
Correct |
5 ms |
376 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
n = 32 |
2 |
Correct |
5 ms |
408 KB |
n = 32 |
3 |
Correct |
5 ms |
376 KB |
n = 32 |
4 |
Correct |
6 ms |
376 KB |
n = 32 |
5 |
Correct |
5 ms |
376 KB |
n = 32 |
6 |
Correct |
5 ms |
376 KB |
n = 32 |
7 |
Correct |
5 ms |
376 KB |
n = 32 |
8 |
Correct |
5 ms |
376 KB |
n = 32 |
9 |
Correct |
5 ms |
376 KB |
n = 32 |
10 |
Correct |
6 ms |
376 KB |
n = 32 |
11 |
Correct |
5 ms |
376 KB |
n = 32 |
12 |
Correct |
5 ms |
376 KB |
n = 32 |
13 |
Correct |
5 ms |
376 KB |
n = 32 |
14 |
Correct |
5 ms |
380 KB |
n = 32 |
15 |
Correct |
5 ms |
376 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
504 KB |
n = 128 |
2 |
Correct |
6 ms |
504 KB |
n = 128 |
3 |
Correct |
6 ms |
504 KB |
n = 128 |
4 |
Correct |
6 ms |
504 KB |
n = 128 |
5 |
Correct |
7 ms |
504 KB |
n = 128 |
6 |
Correct |
6 ms |
504 KB |
n = 128 |
7 |
Correct |
6 ms |
504 KB |
n = 128 |
8 |
Correct |
7 ms |
504 KB |
n = 128 |
9 |
Correct |
6 ms |
452 KB |
n = 128 |
10 |
Correct |
6 ms |
504 KB |
n = 128 |
11 |
Correct |
6 ms |
508 KB |
n = 128 |
12 |
Correct |
6 ms |
504 KB |
n = 128 |
13 |
Correct |
6 ms |
504 KB |
n = 128 |
14 |
Correct |
7 ms |
508 KB |
n = 128 |
15 |
Correct |
6 ms |
504 KB |
n = 128 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
504 KB |
n = 128 |
2 |
Correct |
6 ms |
504 KB |
n = 128 |
3 |
Correct |
6 ms |
504 KB |
n = 128 |
4 |
Correct |
6 ms |
504 KB |
n = 128 |
5 |
Correct |
6 ms |
508 KB |
n = 128 |
6 |
Correct |
6 ms |
508 KB |
n = 128 |
7 |
Correct |
6 ms |
504 KB |
n = 128 |
8 |
Correct |
6 ms |
504 KB |
n = 128 |
9 |
Correct |
6 ms |
504 KB |
n = 128 |
10 |
Correct |
6 ms |
504 KB |
n = 128 |
11 |
Correct |
6 ms |
504 KB |
n = 128 |
12 |
Correct |
6 ms |
504 KB |
n = 128 |
13 |
Correct |
6 ms |
504 KB |
n = 128 |
14 |
Correct |
6 ms |
504 KB |
n = 128 |
15 |
Correct |
7 ms |
504 KB |
n = 128 |