제출 #1161957

#제출 시각아이디문제언어결과실행 시간메모리
1161957gelastropodUnscrambling a Messy Bug (IOI16_messy)C++20
0 / 100
1 ms584 KiB
#include <vector>
#include <bits/stdc++.h>
using namespace std;

#include "messy.h"

std::vector<int> restore_permutation(int n, int w, int r) {
    int logN;
    for (logN = 0; (1LL << logN) < n; logN++);
    for (int i = 0; i < logN; i++) {
        for (int j = 0; j < n; j++) {
            if (j & (1LL << i)) continue;
            string crnt = "";
            for (int k = 0; k < n; k++) {
                crnt += ((j ^ k ^ (1LL << (i + 1))) <= (1LL << (i + 1))) + '0';
            }
            cout << crnt << ' ';
            add_element(crnt);
        }
    }
    cout << '\n';
    compile_set();
    vector<pair<int, int>> inv(n);
    for (int i = 0; i < n; i++)
        inv[i].second = i;
    for (int i = logN - 1; i >= 0; i--) {
        vector<int> counts(1LL << (logN - i));
        auto cinv = inv;
        for (int j = 0; j < n; j++) {
            string crnt = "";
            for (int k = 0; k < n; k++) {
                crnt += ((cinv[k].first ^ (1LL << i + 1)) == cinv[j].first || k == j) + '0';
            }
            cout << crnt << ' ';
            bool res = check_element(crnt);
            if (res) {
                inv[j].second = counts[inv[j].first >> i];
                counts[inv[j].first >> i]++;
            }
            else {
                inv[j].second = counts[(inv[j].first >> i) + 1];
                counts[(inv[j].first >> i) + 1]++;
                inv[j].first += (1LL << i);
            }
        }
    }
    vector<int> ans(n);
    for (int i = 0; i < n; i++) {
        ans[inv[i].first] = i;
    }
    cout << '\n';
    return ans;
}

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