#include <bits/stdc++.h>
#include "messy.h"
using namespace std;
int u;
vector<int> q, nq;
vector<bool> z;
void add(int l, int r)
{
if (r - l < 2)
return;
string s;
int i, m = (l + r) / 2;
for (i = 0; i < u; i++)
s += '1';
for (i = l; i < r; i++)
s[i] = '0';
for (i = l; i < m; i++)
{
s[i] = '1';
add_element(s);
s[i] = '0';
}
add(l, m);
add(m, r);
}
void check(int l, int r)
{
if (r - l < 2)
return;
string s;
int i, j = l, m = (l + r) / 2, k;
k = m;
for (i = 0; i < u; i++)
s += '1';
for (i = l; i < r; i++)
s[q[i]] = '0';
for (i = l; i < r; i++)
{
s[q[i]] = '1';
if (check_element(s))
{
nq[j] = q[i];
j++;
}
else
{
nq[k] = q[i];
k++;
}
s[q[i]] = '0';
}
q = nq;
check(l, m);
check(m, r);
}
vector<int> restore_permutation(int N, int w, int r)
{
int i;
u = N;
add(0, u);
compile_set();
q.resize(u);
z.resize(u);
for (i = 0; i < u; i++)
{
q[i] = i;
z[i] = 0;
}
nq = q;
check(0, u);
vector<int> an(u);
for (i = 0; i < u; i++)
an[q[i]] = i;
return an;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
n = 8 |
2 |
Correct |
0 ms |
348 KB |
n = 8 |
3 |
Correct |
0 ms |
348 KB |
n = 8 |
4 |
Correct |
0 ms |
348 KB |
n = 8 |
5 |
Correct |
0 ms |
348 KB |
n = 8 |
6 |
Correct |
0 ms |
348 KB |
n = 8 |
7 |
Correct |
1 ms |
604 KB |
n = 8 |
8 |
Correct |
1 ms |
348 KB |
n = 8 |
9 |
Correct |
0 ms |
348 KB |
n = 8 |
10 |
Correct |
0 ms |
348 KB |
n = 8 |
11 |
Correct |
0 ms |
348 KB |
n = 8 |
12 |
Correct |
0 ms |
604 KB |
n = 8 |
13 |
Correct |
1 ms |
428 KB |
n = 8 |
14 |
Correct |
0 ms |
348 KB |
n = 8 |
15 |
Correct |
1 ms |
344 KB |
n = 8 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
n = 32 |
2 |
Correct |
1 ms |
348 KB |
n = 32 |
3 |
Correct |
0 ms |
348 KB |
n = 32 |
4 |
Correct |
1 ms |
348 KB |
n = 32 |
5 |
Correct |
1 ms |
344 KB |
n = 32 |
6 |
Correct |
0 ms |
348 KB |
n = 32 |
7 |
Correct |
0 ms |
348 KB |
n = 32 |
8 |
Correct |
1 ms |
348 KB |
n = 32 |
9 |
Correct |
1 ms |
348 KB |
n = 32 |
10 |
Correct |
1 ms |
348 KB |
n = 32 |
11 |
Correct |
0 ms |
428 KB |
n = 32 |
12 |
Correct |
0 ms |
344 KB |
n = 32 |
13 |
Correct |
1 ms |
348 KB |
n = 32 |
14 |
Correct |
0 ms |
600 KB |
n = 32 |
15 |
Correct |
0 ms |
348 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
n = 32 |
2 |
Correct |
0 ms |
348 KB |
n = 32 |
3 |
Correct |
1 ms |
348 KB |
n = 32 |
4 |
Correct |
1 ms |
348 KB |
n = 32 |
5 |
Correct |
1 ms |
348 KB |
n = 32 |
6 |
Correct |
0 ms |
348 KB |
n = 32 |
7 |
Correct |
1 ms |
436 KB |
n = 32 |
8 |
Correct |
1 ms |
348 KB |
n = 32 |
9 |
Correct |
0 ms |
348 KB |
n = 32 |
10 |
Correct |
0 ms |
348 KB |
n = 32 |
11 |
Correct |
0 ms |
348 KB |
n = 32 |
12 |
Correct |
0 ms |
344 KB |
n = 32 |
13 |
Correct |
1 ms |
348 KB |
n = 32 |
14 |
Correct |
1 ms |
344 KB |
n = 32 |
15 |
Correct |
1 ms |
348 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
604 KB |
n = 128 |
2 |
Correct |
1 ms |
604 KB |
n = 128 |
3 |
Correct |
2 ms |
604 KB |
n = 128 |
4 |
Correct |
1 ms |
604 KB |
n = 128 |
5 |
Correct |
1 ms |
604 KB |
n = 128 |
6 |
Correct |
1 ms |
604 KB |
n = 128 |
7 |
Correct |
1 ms |
604 KB |
n = 128 |
8 |
Correct |
1 ms |
604 KB |
n = 128 |
9 |
Correct |
1 ms |
604 KB |
n = 128 |
10 |
Correct |
1 ms |
604 KB |
n = 128 |
11 |
Correct |
1 ms |
604 KB |
n = 128 |
12 |
Correct |
1 ms |
604 KB |
n = 128 |
13 |
Correct |
1 ms |
604 KB |
n = 128 |
14 |
Correct |
1 ms |
604 KB |
n = 128 |
15 |
Correct |
1 ms |
604 KB |
n = 128 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
604 KB |
n = 128 |
2 |
Correct |
1 ms |
604 KB |
n = 128 |
3 |
Correct |
1 ms |
604 KB |
n = 128 |
4 |
Correct |
1 ms |
396 KB |
n = 128 |
5 |
Correct |
1 ms |
604 KB |
n = 128 |
6 |
Correct |
2 ms |
604 KB |
n = 128 |
7 |
Correct |
2 ms |
636 KB |
n = 128 |
8 |
Correct |
1 ms |
604 KB |
n = 128 |
9 |
Correct |
1 ms |
604 KB |
n = 128 |
10 |
Correct |
2 ms |
604 KB |
n = 128 |
11 |
Correct |
1 ms |
604 KB |
n = 128 |
12 |
Correct |
2 ms |
604 KB |
n = 128 |
13 |
Correct |
1 ms |
604 KB |
n = 128 |
14 |
Correct |
1 ms |
604 KB |
n = 128 |
15 |
Correct |
1 ms |
600 KB |
n = 128 |