제출 #813863

#제출 시각아이디문제언어결과실행 시간메모리
813863PikachuUnscrambling a Messy Bug (IOI16_messy)C++17
0 / 100
1 ms340 KiB
#include <bits/stdc++.h>
#include "messy.h"

using namespace std;

vector<int> restore_permutation(int n, int w, int r) 
{
    vector<int> ans(n, -1);
    string tmp(n, '0');
    for (int i = 0; i < n / 2; i++) {
        tmp[i] = '1';
        add_element(tmp);
        tmp[i] = '0';
    }
    for (int i = n / 2; i < n; i++) tmp[i] = '1';
    for (int i = 0; i < n / 2; i++) {
        tmp[i] = '1';
        add_element(tmp);
    }
    tmp = string(n, '0');
    for (int i = 0; i < n / 2; i++) {
        tmp[i] = '1';
    }
    for (int i = n / 2; i < n; i++) {
        tmp[i] = '1';
        add_element(tmp);
    }
    compile_set();
    tmp = string(n, '0');
    for (int i = 0; i < n; i++) {
        tmp[i] = '1';
        if (check_element(tmp)) continue;
        tmp[i] = '0';
    }
    for (int i = n / 2; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (tmp[j] == '1') continue;
            tmp[j] = '1';
            if (check_element(tmp)) {
                ans[j] = i;
                break;
            }
        }
    }
    tmp = string(n, '0');
    for (int i = 0; i < n; i++) {
        if (ans[i] != -1) tmp[i] = '1';
    }
    for (int i = 0; i < n / 2; i++) {
        for (int j = 0; j < n; j++) {
            if (tmp[j] == '1') continue;
            tmp[j] = '1';
            if (check_element(tmp)) {
                ans[j] = i;
                break;
            }
        }
    }
    return ans;
}
#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...