Submission #574858

# Submission time Handle Problem Language Result Execution time Memory
574858 2022-06-09T12:37:10 Z 2fat2code Unscrambling a Messy Bug (IOI16_messy) C++17
100 / 100
2 ms 468 KB
#include <bits/stdc++.h>
#include "messy.h"
#define fr first
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define sc second
#define all(s) s.begin(), s.end()
#define rc(s) return cout << s, 0
using namespace std;

int N, mp[200];

void recursiv(int l, int r){
    if(l == r) return;
    string s = "";
    for(int i=1;i<=N;i++) s += '0';
    for(int i=0;i<l;i++) s[i] = '1';
    for(int i=r+1;i<N;i++) s[i] = '1';
    int mid = l + (r - l) / 2;
    for(int i=l;i<=mid;i++){
        s[i] = '1';
        add_element(s);
        s[i] = '0';
    }
    recursiv(l, mid);
    recursiv(mid + 1, r);
}

void davai(int l, int r, vector<int>tz){
    if(l == r){
        mp[l] = tz[0];
        return;
    }
    else{
        int mid = l + (r - l) / 2;
        string s;
        for(int i=0;i<N;i++) s += '1';
        for(auto it : tz) s[it] = '0';
        vector<int>le, ri;
        for(auto it : tz){
            s[it] = '1';
            if(check_element(s)){
                le.push_back(it);
            }
            else{
                ri.push_back(it);
            }
            s[it] = '0';
        }
        davai(l, mid, le);
        davai(mid + 1, r, ri);
    }
}

vector<int> restore_permutation(int n, int w, int r) {
    N = n;
    recursiv(0, n - 1);
    compile_set();
    vector<int>tz;
    for(int i=0;i<N;i++) tz.push_back(i);
    davai(0, n - 1, tz);
    vector<int>ans;
    for(int i=0;i<N;i++){
        ans.push_back(mp[i]);
    }
    vector<int>lmao(N, 0);
    for(int i=0;i<(int)ans.size();i++){
        lmao[ans[i]] = i;
    }
    return lmao;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 8
2 Correct 1 ms 212 KB n = 8
3 Correct 1 ms 212 KB n = 8
4 Correct 0 ms 212 KB n = 8
5 Correct 1 ms 212 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 1 ms 212 KB n = 8
10 Correct 0 ms 300 KB n = 8
11 Correct 0 ms 212 KB n = 8
12 Correct 0 ms 300 KB n = 8
13 Correct 1 ms 212 KB n = 8
14 Correct 1 ms 212 KB n = 8
15 Correct 1 ms 296 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB n = 32
2 Correct 0 ms 212 KB n = 32
3 Correct 1 ms 212 KB n = 32
4 Correct 1 ms 300 KB n = 32
5 Correct 1 ms 212 KB n = 32
6 Correct 1 ms 212 KB n = 32
7 Correct 1 ms 296 KB n = 32
8 Correct 1 ms 296 KB n = 32
9 Correct 1 ms 212 KB n = 32
10 Correct 1 ms 296 KB n = 32
11 Correct 1 ms 304 KB n = 32
12 Correct 1 ms 304 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 1 ms 212 KB n = 32
2 Correct 1 ms 224 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 300 KB n = 32
8 Correct 1 ms 296 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 212 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 2 ms 468 KB n = 128
2 Correct 2 ms 468 KB n = 128
3 Correct 2 ms 468 KB n = 128
4 Correct 1 ms 468 KB n = 128
5 Correct 2 ms 468 KB n = 128
6 Correct 2 ms 428 KB n = 128
7 Correct 2 ms 468 KB n = 128
8 Correct 2 ms 428 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 428 KB n = 128
13 Correct 2 ms 468 KB n = 128
14 Correct 2 ms 404 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 468 KB n = 128
12 Correct 2 ms 468 KB n = 128
13 Correct 2 ms 428 KB n = 128
14 Correct 2 ms 468 KB n = 128
15 Correct 2 ms 468 KB n = 128