#include "messy_c.h"
#include <string.h>
#define N 128
char cc[N + 1]; int pp[N];
void write(int l, int r) {
int m, i;
if (r - l == 1)
return;
m = (l + r) / 2;
memset(cc + l, '0', (r - l) * sizeof *cc);
for (i = l; i < m; i++)
cc[i] = '1', add_element(cc), cc[i] = '0';
memset(cc + m, '1', (r - m) * sizeof *cc), write(l, m);
memset(cc + l, '1', (m - l) * sizeof *cc), write(m, r);
}
void read(int l, int r) {
int m, i, j;
if (r - l == 1)
return;
m = (l + r) / 2;
for (i = l; i < r; i++)
cc[pp[i]] = '0';
i = l, j = r;
while (i < j) {
int x, tmp;
cc[pp[i]] = '1', x = check_element(cc), cc[pp[i]] = '0';
if (x)
i++;
else {
j--;
tmp = pp[i], pp[i] = pp[j], pp[j] = tmp;
}
}
for (i = m; i < r; i++)
cc[pp[i]] = '1';
read(l, m);
for (i = l; i < m; i++)
cc[pp[i]] = '1';
read(m, r);
}
void restore_permutation(int n, int w, int r, int *ii) {
int i;
write(0, n);
compile_set();
for (i = 0; i < n; i++)
pp[i] = i;
read(0, n);
for (i = 0; i < n; i++)
ii[pp[i]] = i;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
n = 8 |
2 |
Correct |
1 ms |
204 KB |
n = 8 |
3 |
Correct |
1 ms |
276 KB |
n = 8 |
4 |
Correct |
1 ms |
204 KB |
n = 8 |
5 |
Correct |
1 ms |
204 KB |
n = 8 |
6 |
Correct |
1 ms |
204 KB |
n = 8 |
7 |
Correct |
1 ms |
204 KB |
n = 8 |
8 |
Correct |
1 ms |
204 KB |
n = 8 |
9 |
Correct |
1 ms |
204 KB |
n = 8 |
10 |
Correct |
1 ms |
204 KB |
n = 8 |
11 |
Correct |
1 ms |
204 KB |
n = 8 |
12 |
Correct |
1 ms |
204 KB |
n = 8 |
13 |
Correct |
1 ms |
204 KB |
n = 8 |
14 |
Correct |
1 ms |
204 KB |
n = 8 |
15 |
Correct |
1 ms |
204 KB |
n = 8 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
332 KB |
n = 32 |
2 |
Correct |
1 ms |
332 KB |
n = 32 |
3 |
Correct |
1 ms |
332 KB |
n = 32 |
4 |
Correct |
1 ms |
276 KB |
n = 32 |
5 |
Correct |
1 ms |
332 KB |
n = 32 |
6 |
Correct |
1 ms |
272 KB |
n = 32 |
7 |
Correct |
1 ms |
332 KB |
n = 32 |
8 |
Correct |
1 ms |
332 KB |
n = 32 |
9 |
Correct |
1 ms |
332 KB |
n = 32 |
10 |
Correct |
1 ms |
280 KB |
n = 32 |
11 |
Correct |
1 ms |
332 KB |
n = 32 |
12 |
Correct |
1 ms |
332 KB |
n = 32 |
13 |
Correct |
1 ms |
332 KB |
n = 32 |
14 |
Correct |
1 ms |
332 KB |
n = 32 |
15 |
Correct |
1 ms |
332 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
332 KB |
n = 32 |
2 |
Correct |
1 ms |
332 KB |
n = 32 |
3 |
Correct |
1 ms |
332 KB |
n = 32 |
4 |
Correct |
1 ms |
332 KB |
n = 32 |
5 |
Correct |
1 ms |
368 KB |
n = 32 |
6 |
Correct |
1 ms |
332 KB |
n = 32 |
7 |
Correct |
1 ms |
272 KB |
n = 32 |
8 |
Correct |
1 ms |
332 KB |
n = 32 |
9 |
Correct |
1 ms |
276 KB |
n = 32 |
10 |
Correct |
1 ms |
332 KB |
n = 32 |
11 |
Correct |
1 ms |
280 KB |
n = 32 |
12 |
Correct |
1 ms |
332 KB |
n = 32 |
13 |
Correct |
1 ms |
332 KB |
n = 32 |
14 |
Correct |
1 ms |
276 KB |
n = 32 |
15 |
Correct |
1 ms |
332 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2124 KB |
n = 128 |
2 |
Correct |
4 ms |
2124 KB |
n = 128 |
3 |
Correct |
4 ms |
2124 KB |
n = 128 |
4 |
Correct |
4 ms |
2192 KB |
n = 128 |
5 |
Correct |
4 ms |
2124 KB |
n = 128 |
6 |
Correct |
4 ms |
2116 KB |
n = 128 |
7 |
Correct |
4 ms |
2124 KB |
n = 128 |
8 |
Correct |
4 ms |
2124 KB |
n = 128 |
9 |
Correct |
4 ms |
2124 KB |
n = 128 |
10 |
Correct |
4 ms |
2124 KB |
n = 128 |
11 |
Correct |
4 ms |
2124 KB |
n = 128 |
12 |
Correct |
6 ms |
2124 KB |
n = 128 |
13 |
Correct |
4 ms |
2124 KB |
n = 128 |
14 |
Correct |
4 ms |
2124 KB |
n = 128 |
15 |
Correct |
5 ms |
2124 KB |
n = 128 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2124 KB |
n = 128 |
2 |
Correct |
4 ms |
2124 KB |
n = 128 |
3 |
Correct |
4 ms |
2192 KB |
n = 128 |
4 |
Correct |
4 ms |
2124 KB |
n = 128 |
5 |
Correct |
4 ms |
2124 KB |
n = 128 |
6 |
Correct |
4 ms |
2124 KB |
n = 128 |
7 |
Correct |
4 ms |
2196 KB |
n = 128 |
8 |
Correct |
4 ms |
2124 KB |
n = 128 |
9 |
Correct |
4 ms |
2124 KB |
n = 128 |
10 |
Correct |
5 ms |
2124 KB |
n = 128 |
11 |
Correct |
4 ms |
2124 KB |
n = 128 |
12 |
Correct |
4 ms |
2124 KB |
n = 128 |
13 |
Correct |
4 ms |
2124 KB |
n = 128 |
14 |
Correct |
4 ms |
2124 KB |
n = 128 |
15 |
Correct |
4 ms |
2124 KB |
n = 128 |