제출 #1171995

#제출 시각아이디문제언어결과실행 시간메모리
1171995thinknoexitUnscrambling a Messy Bug (IOI16_messy)C++17
100 / 100
2 ms584 KiB
#include "messy.h"
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int n;
int p[128];
void dnc(vector<bool> v, int l = 0, int r = n - 1) {
    if (l == r) {
        for (int i = 0;i < n;i++) {
            if (v[i]) p[i] = l;
        }
        return;
    }
    string res = string(n, '1');
    vector<bool> vl(n, 0), vr(n, 0);
    for (int i = 0;i < n;i++) {
        if (v[i]) res[i] = '0';
    }
    for (int i = 0;i < n;i++) {
        if (!v[i]) continue;
        res[i] = '1';
        if (check_element(res)) vl[i] = 1;
        else vr[i] = 1;
        res[i] = '0';
    }
    int mid = (l + r) / 2;
    dnc(vl, l, mid), dnc(vr, mid + 1, r);
}
vector<int> restore_permutation(int _N, int w, int r) {
    n = _N;
    int now = n;
    while (now != 1) {
        for (int i = 0, j = now - 1;i < n;i += now, j += now) {
            string s = string(n, '1');
            for (int k = i;k <= j;k++) {
                s[k] = '0';
            }
            for (int k = i;k < i + now / 2;k++) {
                s[k] = '1';
                add_element(s);
                s[k] = '0';
            }
        }
        now >>= 1;
    }
    compile_set();
    vector<int> ans(n);
    vector<bool> v(n, 1);
    dnc(v);
    for (int i = 0;i < n;i++) {
        ans[i] = p[i];
    }
    return ans;
}
/*
Debug 0 3
1 1 1 1
Debug 0 1
0 1 0 1
Debug 0 0
0 0 0 1
Debug 1 1
0 1 0 0
Debug 2 3
1 0 1 0
Debug 2 2
1 0 0 0
Debug 3 3
0 0 1 0
*/

컴파일 시 표준 에러 (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...