Submission #1219275

#TimeUsernameProblemLanguageResultExecution timeMemory
1219275kunzaZa183Unscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <bits/stdc++.h> #include <cassert> #include "messy.h" using namespace std; vector<int> restore_permutation(int n, int w, int r) { for (int len = n; len >= 2; len /= 2) { for (int j = 0; j < n; j += len) { string vi(n, '1'); for (int k = j; k < j + len; k++) vi[k] = '0'; for (int k = j; k < j + len / 2; k++) { vi[k] = '1'; // cout << vi << "\n"; add_element(vi); vi[k] = '0'; } } } compile_set(); vector<int> vl(n, 0), vr(n, n - 1); for (int len = n; len >= 2; len /= 2) { map<pair<int, int>, vector<int>> mpiivi; for (int i = 0; i < n; i++) mpiivi[{vl[i], vr[i]}].push_back(i); string ask(n, '1'); for (auto [pii, vi] : mpiivi) { for (auto a : vi) ask[a] = '0'; for (auto a : vi) { ask[a] = '1'; // cout << ask << "\n"; if (check_element(ask)) { vr[a] = (vl[a] + vr[a]) / 2; } else { vl[a] = (vl[a] + vr[a]) / 2 + 1; } ask[a] = '0'; } for (auto a : vi) ask[a] = '1'; } // for (int i = 0; i < n; i++) // cout << vl[i] << " " << vr[i] << "\n"; } assert(vl == vr); return vl; }

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...