Submission #1319515

#TimeUsernameProblemLanguageResultExecution timeMemory
1319515khanhphucscratchUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
2 ms568 KiB
#include "messy.h" #include<bits/stdc++.h> using namespace std; string cur; void add(int l, int r) { if(l == r) return; int mid = (l+r)/2; for(int i = l; i <= mid; i++){ cur[i] = '1'; add_element(cur); cur[i] = '0'; } for(int i = l; i <= mid; i++) cur[i] = '1'; add(mid+1, r); for(int i = l; i <= r; i++) cur[i] ^= 1; add(l, mid); for(int i = l; i <= r; i++) cur[i] = '0'; } int a[2005]; void solve(int l, int r, vector<int> places) { if(l == r){ a[l] = places[0]; return; } int mid = (l+r)/2; vector<int> le, ri; for(int i : places){ cur[i] = '1'; if(check_element(cur) == 1) le.push_back(i); else ri.push_back(i); cur[i] = '0'; } for(int i : ri) cur[i] = '1'; solve(l, mid, le); for(int i : places) cur[i] ^= 1; solve(mid+1, r, ri); for(int i : places) cur[i] = '0'; } vector<int> restore_permutation(int n, int W, int R) { for(int i = 0; i < n; i++) cur += "0"; add(0, n-1); compile_set(); vector<int> places; for(int i = 0; i < n; i++) places.push_back(i); solve(0, n-1, places); vector<int> ans(n); for(int i = 0; i < n; i++) ans[a[i]] = i; 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...