#include <bits/stdc++.h>
#include "messy.h"
#define DIM 300
using namespace std;
string a[DIM];
int k,n,w,r,pas;
int p[DIM],v[DIM];
vector <int> sol;
/*void add_element(string s){
a[++k] = s;
}
void compile_set(){
for (int i=1;i<=k;i++){
string s = "";
for (int j=0;j<n;j++)
s += a[i][p[j]];
a[i] = s;
}
}
int check_element(string s){
pas++;
for (int i=1;i<=k;i++)
if (a[i] == s)
return 1;
return 0;
}*/
void add (int st, int dr){
if (st == dr)
return;
int mid = (st+dr)>>1;
string s = "";
for (int i=0;i<n;i++){
if (i < st || i > dr)
s += "1";
else s += "0";
}
for (int i=st;i<=mid;i++){
s[i] = '1';
add_element(s);
s[i] = '0';
}
add (st,mid);
add (mid+1,dr);
}
void solve (string s, int st, int dr){
if (st == dr){
for (int i=0;i<n;i++){
if (s[i] == '0'){
sol[i] = st;
break;
}}
return;
}
int mid = (st+dr)>>1;
vector <int> poz,poz2;
for (int i=0;i<=n-1;i++){
if (s[i] == '1')
continue;
s[i] = '1';
if (check_element(s) == 0)
poz.push_back(i);
else poz2.push_back(i);
s[i] = '0';
}
for (auto it : poz)
s[it] = '1';
solve (s,st,mid);
for (auto it : poz)
s[it] = '0';
for (auto it : poz2)
s[it] = '1';
solve (s,mid+1,dr);
}
vector<int> restore_permutation (int N, int w, int r){
int i;
n = N;
add (0,n-1);
compile_set();
string s = "";
for (i=0;i<n;i++){
sol.push_back(0);
s += "0";
}
solve (s,0,n-1);
return sol;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 8 |
2 |
Correct |
5 ms |
384 KB |
n = 8 |
3 |
Correct |
5 ms |
384 KB |
n = 8 |
4 |
Correct |
5 ms |
384 KB |
n = 8 |
5 |
Correct |
4 ms |
384 KB |
n = 8 |
6 |
Correct |
5 ms |
384 KB |
n = 8 |
7 |
Correct |
5 ms |
384 KB |
n = 8 |
8 |
Correct |
4 ms |
384 KB |
n = 8 |
9 |
Correct |
4 ms |
384 KB |
n = 8 |
10 |
Correct |
5 ms |
384 KB |
n = 8 |
11 |
Correct |
5 ms |
384 KB |
n = 8 |
12 |
Correct |
5 ms |
384 KB |
n = 8 |
13 |
Correct |
4 ms |
384 KB |
n = 8 |
14 |
Correct |
4 ms |
384 KB |
n = 8 |
15 |
Correct |
4 ms |
384 KB |
n = 8 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 32 |
2 |
Correct |
5 ms |
384 KB |
n = 32 |
3 |
Correct |
5 ms |
384 KB |
n = 32 |
4 |
Correct |
5 ms |
384 KB |
n = 32 |
5 |
Correct |
5 ms |
384 KB |
n = 32 |
6 |
Correct |
5 ms |
384 KB |
n = 32 |
7 |
Correct |
5 ms |
384 KB |
n = 32 |
8 |
Correct |
5 ms |
384 KB |
n = 32 |
9 |
Correct |
5 ms |
384 KB |
n = 32 |
10 |
Correct |
5 ms |
384 KB |
n = 32 |
11 |
Correct |
5 ms |
384 KB |
n = 32 |
12 |
Correct |
5 ms |
384 KB |
n = 32 |
13 |
Correct |
5 ms |
384 KB |
n = 32 |
14 |
Correct |
5 ms |
384 KB |
n = 32 |
15 |
Correct |
5 ms |
384 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
384 KB |
n = 32 |
2 |
Correct |
5 ms |
384 KB |
n = 32 |
3 |
Correct |
5 ms |
384 KB |
n = 32 |
4 |
Correct |
5 ms |
384 KB |
n = 32 |
5 |
Correct |
5 ms |
384 KB |
n = 32 |
6 |
Correct |
5 ms |
384 KB |
n = 32 |
7 |
Correct |
5 ms |
384 KB |
n = 32 |
8 |
Correct |
5 ms |
384 KB |
n = 32 |
9 |
Correct |
5 ms |
384 KB |
n = 32 |
10 |
Correct |
5 ms |
384 KB |
n = 32 |
11 |
Correct |
5 ms |
384 KB |
n = 32 |
12 |
Correct |
5 ms |
384 KB |
n = 32 |
13 |
Correct |
5 ms |
384 KB |
n = 32 |
14 |
Correct |
5 ms |
384 KB |
n = 32 |
15 |
Correct |
5 ms |
384 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
512 KB |
n = 128 |
2 |
Correct |
7 ms |
512 KB |
n = 128 |
3 |
Correct |
6 ms |
512 KB |
n = 128 |
4 |
Correct |
6 ms |
512 KB |
n = 128 |
5 |
Correct |
6 ms |
512 KB |
n = 128 |
6 |
Correct |
6 ms |
512 KB |
n = 128 |
7 |
Correct |
6 ms |
512 KB |
n = 128 |
8 |
Correct |
6 ms |
512 KB |
n = 128 |
9 |
Correct |
6 ms |
512 KB |
n = 128 |
10 |
Correct |
6 ms |
512 KB |
n = 128 |
11 |
Correct |
6 ms |
512 KB |
n = 128 |
12 |
Correct |
6 ms |
512 KB |
n = 128 |
13 |
Correct |
6 ms |
512 KB |
n = 128 |
14 |
Correct |
6 ms |
512 KB |
n = 128 |
15 |
Correct |
6 ms |
512 KB |
n = 128 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
7 ms |
564 KB |
n = 128 |
2 |
Correct |
6 ms |
512 KB |
n = 128 |
3 |
Correct |
6 ms |
512 KB |
n = 128 |
4 |
Correct |
6 ms |
512 KB |
n = 128 |
5 |
Correct |
6 ms |
512 KB |
n = 128 |
6 |
Correct |
6 ms |
512 KB |
n = 128 |
7 |
Correct |
6 ms |
512 KB |
n = 128 |
8 |
Correct |
6 ms |
512 KB |
n = 128 |
9 |
Correct |
6 ms |
512 KB |
n = 128 |
10 |
Correct |
6 ms |
512 KB |
n = 128 |
11 |
Correct |
6 ms |
512 KB |
n = 128 |
12 |
Correct |
6 ms |
512 KB |
n = 128 |
13 |
Correct |
6 ms |
512 KB |
n = 128 |
14 |
Correct |
6 ms |
512 KB |
n = 128 |
15 |
Correct |
6 ms |
512 KB |
n = 128 |