Submission #1233300

#TimeUsernameProblemLanguageResultExecution timeMemory
1233300badge881Unscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
2 ms584 KiB
#include <bits/stdc++.h> #include "messy.h" using namespace std; vector<int> ans; int n; void build(int l, int r) { if (l == r - 1) return; string str(n, '0'); int mid = (l + r) / 2; for (int i = l; i < r; i++) str[i] = '1'; for (int i = l; i < mid; i++) { str[i] = '0'; add_element(str); str[i] = '1'; } build(l, mid); build(mid, r); } void query(int l, int r, vector<int> &indices) { if (l == r - 1) { ans[indices[0]] = l; return; } string str(n, '0'); for (auto idx : indices) str[idx] = '1'; vector<int> left, right; for (auto idx : indices) { str[idx] = '0'; if (check_element(str)) left.push_back(idx); else right.push_back(idx); str[idx] = '1'; } int mid = (l + r) / 2; query(l, mid, left); query(mid, r, right); } vector<int> restore_permutation(int N, int w, int r) { n = N; vector<int> indices(n); iota(indices.begin(), indices.end(), 0); ans.resize(n); build(0, n); compile_set(); query(0, n, indices); return ans; }

Compilation message (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...