Submission #1317517

#TimeUsernameProblemLanguageResultExecution timeMemory
1317517nikaa123Unscrambling a Messy Bug (IOI16_messy)C++20
0 / 100
1 ms568 KiB
#include <bits/stdc++.h>
#include "messy.h"
using namespace std;

int n;
vector <int> ans(200);

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

void getans(int l, int r, vector <int> v) {
    if (l == r) {
        ans[l] = v[0];
        return;
    }
    string res = "";
    for (int i = 0; i < n; i++) {
        res += "1";
    } 
    for (int i = 0; i < v.size(); i++) {
        res[v[i]] = '0';
    }
    vector <int> lv,rv;
    for (int i = 0; i < n; i++) {
        if (res[i] == '0') {
            res[i] = '1';
            bool is = check_element(res);
            if (is) lv.emplace_back(i); else rv.emplace_back(i);
            res[i] = '0';
        }
    }
    int mid = (l+r)/2;
    getans(l,mid,lv);
    getans(mid+1,r,rv);
}

vector<int> restore_permutation(int N, int w, int r) {
    n = N;
    add(0,n-1);
    vector <int> full;
    iota(full.begin(),full.end(),0);
    getans(0,n-1,full);
    return ans;
}

Compilation message (stderr)

messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...