제출 #1324085

#제출 시각아이디문제언어결과실행 시간메모리
1324085sh_qaxxorov_571Unscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms568 KiB
#include <vector> #include <string> #include <algorithm> #include "messy.h" using namespace std; /** * IOI 2016 - Unscrambling a Messy Bug * n = 128 uchun w = 896, r = 896 cheklovlariga mos yechim. */ void build(int n, int l, int r) { if (l + 1 == r) return; int mid = (l + r) / 2; // Chap bo'lakdagi bitlarni identifikatsiya qilish uchun maska qo'shamiz string s(n, '1'); for (int i = l; i < r; i++) s[i] = '0'; for (int i = l; i < mid; i++) { string t = s; t[i] = '1'; add_element(t); // Chap bo'lakdagi har bir bit uchun bittadan son qo'shish [cite: 11, 50] } build(n, l, mid); build(n, mid, r); } vector<int> p; vector<int> ans; void solve(int n, int l, int r, vector<int> avail) { if (l + 1 == r) { ans[avail[0]] = l; return; } int mid = (l + r) / 2; string s(n, '1'); for (int x : avail) s[x] = '0'; vector<int> left_side, right_side; for (int x : avail) { string t = s; t[x] = '1'; if (check_element(t)) { // Agar son to'plamda bo'lsa, u chap bo'lakka tegishli [cite: 57, 61] left_side.push_back(x); } else { right_side.push_back(x); } } solve(n, l, mid, left_side); solve(n, mid, r, right_side); } vector<int> restore_permutation(int n, int w, int r) { // 1. Yozish bosqichi build(n, 0, n); compile_set(); // Permutatsiyani ishga tushirish [cite: 13, 31, 54] // 2. O'qish va tiklash bosqichi ans.resize(n); vector<int> all_indices; for (int i = 0; i < n; i++) all_indices.push_back(i); solve(n, 0, n, all_indices); // Permutatsiya p[i] ni qaytarish (qaysi i bit p[i] ga o'tgan) [cite: 19, 44] vector<int> res(n); for (int i = 0; i < n; i++) res[i] = ans[i]; return res; }

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