| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1270908 | kl0989e | Unscrambling a Messy Bug (IOI16_messy) | C++20 | 1 ms | 584 KiB |
#include "messy.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pi pair<int, int>
#define pl pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(),(x).end()
vi resp;
string s;
void build(int l, int r) {
if (l==r) {
return;
}
int m=l+(r-l)/2;
for (int i=l; i<=m; i++) {
s[i]='1';
add_element(s);
s[i]='0';
}
for (int i=l; i<=m; i++) {
s[i]='1';
}
build(m+1,r);
for (int i=l; i<=m; i++) {
s[i]='0';
}
for (int i=m+1; i<=r; i++) {
s[i]='1';
}
build(l,m);
for (int i=m+1; i<=r; i++) {
s[i]='0';
}
}
void get(int l, int r) {
if (l==r) {
resp[find(all(s),'0')-s.begin()]=l;
return;
}
int m=l+(r-l)/2;
int n=s.size();
vi infi(n,0);
vi inse(n,0);
for (int i=0; i<n; i++) {
if (s[i]=='0') {
s[i]='1';
if (check_element(s)) {
infi[i]=1;
}
else {
inse[i]=1;
}
s[i]='0';
}
}
for (int i=0; i<n; i++) {
if (infi[i]) {
s[i]='1';
}
}
get(m+1,r);
for (int i=0; i<n; i++) {
if (infi[i]) {
s[i]='0';
}
if (inse[i]) {
s[i]='1';
}
}
get(l,m);
for (int i=0; i<n; i++) {
if (inse[i]) {
s[i]='0';
}
}
}
vi restore_permutation(int n, int w, int r) {
resp.resize(n);
for (int i=0; i<n; i++) {
s+='0';
}
build(0,n-1);
compile_set();
get(0,n-1);
return resp;
}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... | ||||
