제출 #1024924

#제출 시각아이디문제언어결과실행 시간메모리
1024924TonylUnscrambling a Messy Bug (IOI16_messy)C++17
38 / 100
1 ms436 KiB
#include <vector>
#include "messy.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vi = vector<int>;
#define REP(i,n) for (int i = 0; i < n; i++)
#define all(x) (x).begin(), (x).end()
#define trav(x) for (auto &a : x)

int n;

vi perm; // from where?
vi to;

void prep_learn(int am) {
    vector<char> st(n, '0');
    REP(i,am) {
        st[i] = '1';
        add_element(string(all(st)));
    }
}

void learn_brute(int am) {
    vector<char> st(n, '0');
    REP(i,am) {
        REP(j,n) {
            if (st[j] == '1') continue;
            st[j] = '1';
            if (check_element(string(all(st)))) {
                to[i] = j;
                perm[j] = i;
                break;
            } else st[j] = '0';
        }
    }
}

std::vector<int> restore_permutation(int n_, int w, int r) {
    n = n_;
    prep_learn(n);
    compile_set();
    perm = vi(n,-1); to = vi(n,-1);
    learn_brute(n);
    return perm;
}
#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...