제출 #1208300

#제출 시각아이디문제언어결과실행 시간메모리
1208300omsincoconutUnscrambling a Messy Bug (IOI16_messy)C++17
100 / 100
1 ms584 KiB
#include <bits/stdc++.h> #include "messy.h" using namespace std; string popat(int n, vector<int> p) { string s(n, '0'); for (int i : p) s[i] = '1'; return s; } vector<int> restore_permutation(int n, int w, int r) { int MAX_BIT = 31-__builtin_clz(n); vector<int> popbit[MAX_BIT]; for (int bit = 0; bit < MAX_BIT; bit++) { for (int i = 0; i < n; i++) if (i&(1<<bit)) popbit[bit].push_back(i); } vector<int> last; for (int bit = 0; bit < MAX_BIT; bit++) { for (int i : popbit[bit]) { vector<int> to_add = last; if (find(to_add.begin(), to_add.end(), i) == to_add.end()) to_add.push_back(i); else to_add.erase(find(to_add.begin(), to_add.end(), i)); add_element(popat(n, to_add)); } last = popbit[bit]; } compile_set(); last = vector<int>(); vector<int> p(n); for (int bit = 0; bit < MAX_BIT; bit++) { vector<int> popped; for (int i = 0; i < n; i++) { vector<int> to_add = last; if (find(to_add.begin(), to_add.end(), i) == to_add.end()) to_add.push_back(i); else to_add.erase(find(to_add.begin(), to_add.end(), i)); if (check_element(popat(n, to_add))) { p[i] |= (1<<bit); popped.push_back(i); } } last = popped; } return p; }

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