Submission #1192412

#TimeUsernameProblemLanguageResultExecution timeMemory
1192412onbertUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include "messy.h" #include <bits/stdc++.h> using namespace std; string s; void build(int l, int r) { if (l == r) return; int mid = (l+r)/2; for (int i=l;i<=mid;i++) { s[i] = '1'; add_element(s); s[i] = '0'; } for (int i=mid+1;i<=r;i++) s[i] = '1'; build(l, mid); for (int i=mid+1;i<=r;i++) s[i] = '0'; for (int i=l;i<=mid;i++) s[i] = '1'; build(mid+1, r); for (int i=l;i<=mid;i++) s[i] = '0'; } vector<int> ans; void solve(int l, int r, vector<int> vec) { if (l == r) { ans[vec[0]] = l; return; } int mid = (l+r)/2; vector<int> L, R; for (int i:vec) { s[i] = '1'; if (check_element(s)) L.push_back(i); else R.push_back(i); s[i] = '0'; } for (int i:R) s[i] = '1'; solve(l, mid, L); for (int i:R) s[i] = '0'; for (int i:L) s[i] = '1'; solve(mid+1, r, R); for (int i:L) s[i] = '0'; } vector<int> restore_permutation(int n, int w, int r) { s = ""; for (int i=0;i<n;i++) s += '0'; build(0, n-1); compile_set(); ans.resize(n); vector<int> all; for (int i=0;i<n;i++) all.push_back(i); solve(0, n-1, all); 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...