#include <bits/stdc++.h>
#include "messy.h"
using namespace std;
int writeData(int start, int end, int n) {
string element = "";
int mid = (start + end)/2;
for (int i=0; i<start; i++) element += '1';
for (int i=start; i<=end; i++) element += '0';
for (int i=end+1; i<n; i++) element += '1';
if (end - start == 1) {
element[start] = '1';
add_element(element);
return 1;
}
for (int i=start; i<=mid; i++) {
element[i] = '1';
add_element(element);
element[i] = '0';
}
return (mid+1-start) + writeData(start, mid, n) + writeData(mid+1, end, n);
}
vector<int> ans;
int readData(int n, int start, int end, set<int> currentRangeIndex) {
string element = "";
if (end - start == 1) {
for (int i=0; i<n; i++) element += '1';
element[*currentRangeIndex.begin()] = '0';
if (check_element(element)) {
ans[*currentRangeIndex.begin()] = end;
ans[*next(currentRangeIndex.begin(), 1)] = start;
} else {
ans[*currentRangeIndex.begin()] = start;
ans[*next(currentRangeIndex.begin(), 1)] = end;
}
return 1;
}
for (int i=0; i<n; i++) element += '0';
int mid = (start + end)/2;
for (int i=0; i<n; i++)
if(currentRangeIndex.find(i) == currentRangeIndex.end())
element[i] = '1';
set<int> newCurrentRangeIndex;
for (int i: currentRangeIndex) {
element[i] = '1';
if (check_element(element))
newCurrentRangeIndex.insert(i);
element[i] = '0';
}
set<int> otherCurrentRangeIndex;
for (int i: currentRangeIndex)
if (newCurrentRangeIndex.find(i) == newCurrentRangeIndex.end())
otherCurrentRangeIndex.insert(i);
return newCurrentRangeIndex.size() + readData(n, start, mid, newCurrentRangeIndex) + readData(n, mid+1, end, otherCurrentRangeIndex);
}
std::vector<int> restore_permutation(int n, int w, int r) {
assert(writeData(0, n-1, n) <= w);
compile_set();
set<int> temp; ans.resize(n);
for (int i=0; i<n; i++) temp.insert(i);
assert(readData(n, 0, n-1, temp) <= r);
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
n = 8 |
2 |
Correct |
0 ms |
212 KB |
n = 8 |
3 |
Correct |
0 ms |
212 KB |
n = 8 |
4 |
Correct |
0 ms |
212 KB |
n = 8 |
5 |
Correct |
0 ms |
300 KB |
n = 8 |
6 |
Correct |
1 ms |
212 KB |
n = 8 |
7 |
Correct |
0 ms |
212 KB |
n = 8 |
8 |
Correct |
0 ms |
212 KB |
n = 8 |
9 |
Correct |
0 ms |
304 KB |
n = 8 |
10 |
Correct |
0 ms |
212 KB |
n = 8 |
11 |
Correct |
0 ms |
212 KB |
n = 8 |
12 |
Correct |
0 ms |
212 KB |
n = 8 |
13 |
Correct |
0 ms |
212 KB |
n = 8 |
14 |
Correct |
0 ms |
212 KB |
n = 8 |
15 |
Correct |
1 ms |
212 KB |
n = 8 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
300 KB |
n = 32 |
2 |
Correct |
1 ms |
212 KB |
n = 32 |
3 |
Correct |
1 ms |
212 KB |
n = 32 |
4 |
Correct |
1 ms |
212 KB |
n = 32 |
5 |
Correct |
1 ms |
212 KB |
n = 32 |
6 |
Correct |
1 ms |
304 KB |
n = 32 |
7 |
Correct |
1 ms |
212 KB |
n = 32 |
8 |
Correct |
1 ms |
212 KB |
n = 32 |
9 |
Correct |
1 ms |
212 KB |
n = 32 |
10 |
Correct |
1 ms |
296 KB |
n = 32 |
11 |
Correct |
1 ms |
212 KB |
n = 32 |
12 |
Correct |
1 ms |
212 KB |
n = 32 |
13 |
Correct |
0 ms |
212 KB |
n = 32 |
14 |
Correct |
0 ms |
212 KB |
n = 32 |
15 |
Correct |
1 ms |
212 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
224 KB |
n = 32 |
2 |
Correct |
1 ms |
308 KB |
n = 32 |
3 |
Correct |
1 ms |
212 KB |
n = 32 |
4 |
Correct |
1 ms |
212 KB |
n = 32 |
5 |
Correct |
1 ms |
212 KB |
n = 32 |
6 |
Correct |
1 ms |
212 KB |
n = 32 |
7 |
Correct |
1 ms |
212 KB |
n = 32 |
8 |
Correct |
1 ms |
212 KB |
n = 32 |
9 |
Correct |
0 ms |
296 KB |
n = 32 |
10 |
Correct |
1 ms |
212 KB |
n = 32 |
11 |
Correct |
1 ms |
212 KB |
n = 32 |
12 |
Correct |
1 ms |
212 KB |
n = 32 |
13 |
Correct |
1 ms |
212 KB |
n = 32 |
14 |
Correct |
1 ms |
296 KB |
n = 32 |
15 |
Correct |
1 ms |
212 KB |
n = 32 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
428 KB |
n = 128 |
2 |
Correct |
2 ms |
468 KB |
n = 128 |
3 |
Correct |
2 ms |
428 KB |
n = 128 |
4 |
Correct |
2 ms |
428 KB |
n = 128 |
5 |
Correct |
2 ms |
468 KB |
n = 128 |
6 |
Correct |
2 ms |
468 KB |
n = 128 |
7 |
Correct |
2 ms |
468 KB |
n = 128 |
8 |
Correct |
2 ms |
468 KB |
n = 128 |
9 |
Correct |
2 ms |
468 KB |
n = 128 |
10 |
Correct |
3 ms |
468 KB |
n = 128 |
11 |
Correct |
2 ms |
468 KB |
n = 128 |
12 |
Correct |
2 ms |
428 KB |
n = 128 |
13 |
Correct |
2 ms |
468 KB |
n = 128 |
14 |
Correct |
2 ms |
468 KB |
n = 128 |
15 |
Correct |
2 ms |
468 KB |
n = 128 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
468 KB |
n = 128 |
2 |
Correct |
2 ms |
428 KB |
n = 128 |
3 |
Correct |
2 ms |
468 KB |
n = 128 |
4 |
Correct |
2 ms |
468 KB |
n = 128 |
5 |
Correct |
2 ms |
468 KB |
n = 128 |
6 |
Correct |
2 ms |
468 KB |
n = 128 |
7 |
Correct |
2 ms |
468 KB |
n = 128 |
8 |
Correct |
2 ms |
468 KB |
n = 128 |
9 |
Correct |
2 ms |
468 KB |
n = 128 |
10 |
Correct |
2 ms |
468 KB |
n = 128 |
11 |
Correct |
2 ms |
428 KB |
n = 128 |
12 |
Correct |
2 ms |
468 KB |
n = 128 |
13 |
Correct |
2 ms |
468 KB |
n = 128 |
14 |
Correct |
2 ms |
468 KB |
n = 128 |
15 |
Correct |
2 ms |
428 KB |
n = 128 |