Submission #821271

# Submission time Handle Problem Language Result Execution time Memory
821271 2023-08-11T08:36:20 Z ttamx Unscrambling a Messy Bug (IOI16_messy) C++14
100 / 100
2 ms 468 KB
#include <bits/stdc++.h>
#include "messy.h"

using namespace std;

vector<int> restore_permutation(int n, int w, int r){
    function<void(int,int)> sol1=[&](int l,int r){
        if(l==r)return;
        int m=(l+r)/2;
        string str(n,'1');
        for(int i=l;i<=r;i++)str[i]='0';
        for(int i=l;i<=m;i++){
            string res=str;
            res[i]='1';
            add_element(res);
        }
        sol1(l,m);
        sol1(m+1,r);
    };
    sol1(0,n-1);
    compile_set();
    vector<int> p(n);
    function<void(int,int,vector<int>)> sol2=[&](int l,int r,vector<int> b){
        if(l==r)return;
        int m=(l+r)/2;
        string str(n,'0');
        vector<int> vl,vr;
        for(auto x:b)str[x]='1';
        for(int i=0;i<n;i++){
            if(str[i]=='1')continue;
            string res=str;
            res[i]='1';
            if(check_element(res))vl.emplace_back(i);
            else vr.emplace_back(i);
        }
        if(vl.size()==1)p[vl[0]]=l;
        if(vr.size()==1)p[vr[0]]=r;
        for(auto x:b)vl.emplace_back(x);
        for(auto x:b)vr.emplace_back(x);
        sol2(l,m,vr);
        sol2(m+1,r,vl);
    };
    sol2(0,n-1,vector<int>(0));
    return p;
}
# Verdict Execution time Memory Grader output
1 Correct 1 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 296 KB n = 8
5 Correct 0 ms 212 KB n = 8
6 Correct 0 ms 212 KB n = 8
7 Correct 0 ms 212 KB n = 8
8 Correct 0 ms 304 KB n = 8
9 Correct 0 ms 212 KB n = 8
10 Correct 1 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 0 ms 212 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 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 0 ms 212 KB n = 32
7 Correct 0 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 212 KB n = 32
11 Correct 1 ms 212 KB n = 32
12 Correct 1 ms 300 KB n = 32
13 Correct 1 ms 212 KB n = 32
14 Correct 1 ms 212 KB n = 32
15 Correct 1 ms 212 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 32
2 Correct 1 ms 212 KB n = 32
3 Correct 0 ms 300 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 1 ms 212 KB n = 32
10 Correct 1 ms 212 KB n = 32
11 Correct 1 ms 212 KB n = 32
12 Correct 1 ms 340 KB n = 32
13 Correct 1 ms 212 KB n = 32
14 Correct 1 ms 212 KB n = 32
15 Correct 1 ms 296 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB n = 128
2 Correct 1 ms 468 KB n = 128
3 Correct 2 ms 468 KB n = 128
4 Correct 1 ms 468 KB n = 128
5 Correct 1 ms 468 KB n = 128
6 Correct 1 ms 424 KB n = 128
7 Correct 2 ms 468 KB n = 128
8 Correct 1 ms 428 KB n = 128
9 Correct 2 ms 468 KB n = 128
10 Correct 1 ms 468 KB n = 128
11 Correct 1 ms 428 KB n = 128
12 Correct 1 ms 432 KB n = 128
13 Correct 2 ms 468 KB n = 128
14 Correct 1 ms 468 KB n = 128
15 Correct 1 ms 428 KB n = 128
# Verdict Execution time Memory Grader output
1 Correct 2 ms 468 KB n = 128
2 Correct 1 ms 468 KB n = 128
3 Correct 1 ms 468 KB n = 128
4 Correct 1 ms 468 KB n = 128
5 Correct 1 ms 468 KB n = 128
6 Correct 1 ms 468 KB n = 128
7 Correct 1 ms 424 KB n = 128
8 Correct 1 ms 468 KB n = 128
9 Correct 2 ms 424 KB n = 128
10 Correct 1 ms 468 KB n = 128
11 Correct 1 ms 468 KB n = 128
12 Correct 1 ms 420 KB n = 128
13 Correct 1 ms 428 KB n = 128
14 Correct 1 ms 432 KB n = 128
15 Correct 1 ms 468 KB n = 128