| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1359423 | Ludissey | Unscrambling a Messy Bug (IOI16_messy) | C++20 | 1 ms | 580 KiB |
#include <bits/stdc++.h>
#include "messy.h"
#define sz(a) (int)a.size()
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
using namespace std;
std::vector<int> restore_permutation(int n, int w, int r) {
string s(n,'0');
int LOG=log2(n);
vector<int> used(n);
int csm=0;
for (int j = 0; j <= LOG; j++)
{
vector<int> new_used(n,false);
for (int i = 0; i < n; i++)
{
if(s[i]=='0'&&i&(1<<(j-used[i]))) {
s[i]='1';
add_element(s);
csm++;
if(!used[i]) new_used[i]=true;
s[i]='0';
}
}
for (int i = 0; i < n; i++)
{
if(new_used[i]&&!used[i]) {
s[i]='1';
used[i]=true;
new_used[i]=false;
}else{
s[i]='0';
}
}
}
cerr << csm << "\n";
csm=0;
for (int i = 0; i < n; i++)
{
s[i]='0';
used[i]=false;
}
compile_set();
vector<int> p(n,0);
for (int j = 0; j <= LOG; j++)
{
vector<int> new_used(n,false);
for (int i = 0; i < n; i++)
{
if(s[i]=='1'){
continue;
}
if(j==LOG&&used[i]==false) continue;
s[i]='1';
csm++;
if(check_element(s)){
p[i]+=(1<<(j-used[i]));
if(!used[i]) new_used[i]=true;
}
s[i]='0';
}
for (int i = 0; i < n; i++)
{
if(new_used[i]){
used[i]=true;
new_used[i]=false;
s[i]='1';
}else{
s[i]='0';
}
}
}
cerr << csm << "\n";
return p;
}
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
