Submission #1171995

#TimeUsernameProblemLanguageResultExecution timeMemory
1171995thinknoexitUnscrambling a Messy Bug (IOI16_messy)C++17
100 / 100
2 ms584 KiB
#include "messy.h" #include<bits/stdc++.h> using namespace std; using ll = long long; int n; int p[128]; void dnc(vector<bool> v, int l = 0, int r = n - 1) { if (l == r) { for (int i = 0;i < n;i++) { if (v[i]) p[i] = l; } return; } string res = string(n, '1'); vector<bool> vl(n, 0), vr(n, 0); for (int i = 0;i < n;i++) { if (v[i]) res[i] = '0'; } for (int i = 0;i < n;i++) { if (!v[i]) continue; res[i] = '1'; if (check_element(res)) vl[i] = 1; else vr[i] = 1; res[i] = '0'; } int mid = (l + r) / 2; dnc(vl, l, mid), dnc(vr, mid + 1, r); } vector<int> restore_permutation(int _N, int w, int r) { n = _N; int now = n; while (now != 1) { for (int i = 0, j = now - 1;i < n;i += now, j += now) { string s = string(n, '1'); for (int k = i;k <= j;k++) { s[k] = '0'; } for (int k = i;k < i + now / 2;k++) { s[k] = '1'; add_element(s); s[k] = '0'; } } now >>= 1; } compile_set(); vector<int> ans(n); vector<bool> v(n, 1); dnc(v); for (int i = 0;i < n;i++) { ans[i] = p[i]; } return ans; } /* Debug 0 3 1 1 1 1 Debug 0 1 0 1 0 1 Debug 0 0 0 0 0 1 Debug 1 1 0 1 0 0 Debug 2 3 1 0 1 0 Debug 2 2 1 0 0 0 Debug 3 3 0 0 1 0 */

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