Submission #1253372

#TimeUsernameProblemLanguageResultExecution timeMemory
1253372NurislamUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <bits/stdc++.h> #include "messy.h" using namespace std; vector<int> ans; void ad(int l, int r, string s) { if(l == r) return; int m = (l+r) >> 1; for(int i = l; i <= m; i ++ ) { s[i] = '1'; add_element(s); s[i] = '0'; }; string sl = s, sr = s; for(int i = l; i <= r; i ++ ) { if(i <= m)sr[i] = '1'; else sl[i] = '1'; }; ad(l, m, sl); ad(m+1, r, sr); }; void rt (int l, int r, string s, vector<int> &v) { if(l == r) { ans[v[0]] = l; return; }; int m = (l + r) >> 1; vector<int> vl, vr; for(int i : v) { s[i] = '1'; if(check_element(s)) vl.push_back(i); else vr.push_back(i); s[i] = '0'; }; string sl = s, sr = s; for(int i : vr) sl[i] = '1'; for(int i : vl) sr[i] = '1'; rt(l, m, sl, vl); rt(m+1, r, sr, vr); }; vector<int> restore_permutation(int n, int w, int r) { //add_element("0"); //compile_set(); //check_element("0"); //return vector<int>(); string s; s.resize(n, '0'); ad(0, n-1, s); compile_set(); ans.resize(n); for(auto &i : s) i = '0'; vector<int> v(n); iota(v.begin(), v.end(), 0); rt(0, n-1, s, v); 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...