# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1224631 | madamadam3 | Unscrambling a Messy Bug (IOI16_messy) | C++20 | 1 ms | 328 KiB |
#include "messy.h"
#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
vi restore_permutation(int n, int w, int r) {
random_device rd;
mt19937 engine(rd());
vi indices(n); iota(indices.begin(), indices.end(), 0);
shuffle(indices.begin(), indices.end(), engine);
int W = 0, R = 0;
string cur = ""; for (int i = 0; i < n; i++) cur += "0";
for (int idx = 0; idx < n; idx++) {
int i = indices[idx];
cur[i] = '1';
add_element(cur);
W++;
}
compile_set();
vi ans(n, -1);
string test_str = ""; for (int i = 0; i < n; i++) test_str += "0";
for (int bi = 0; bi < n; bi++) {
int bit = indices[bi];
for (int lo = 0; lo < n; lo++) {
int loc = indices[lo];
if (test_str[loc] != '0') continue;
test_str[loc] = '1';
R++;
if (check_element(test_str)) {
ans[loc] = bit;
break;
}
test_str[loc] = '0';
}
}
// cout << "W = " << W << " R = " << R << "\n";
return ans;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |