Submission #1208150

#TimeUsernameProblemLanguageResultExecution timeMemory
1208150ansoriUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include "messy.h" #include<bits/stdc++.h> using namespace std; void add_element(string s) ; void compile_set() ; bool check_element(string s) ; int sz; vector<int> ans; void build(int l , int r){ if(l == r) return ; int m = (l + r) / 2; for(int i = l;i <= m; ++ i){ string s = string(sz , '1'); for(int j = l;j <= r; ++ j) s[j] = '0'; s[i] = '1'; add_element(s); } build(l , m); build(m + 1 , r); } void devide_conquare(vector<int> v , int l , int r){ if(l == r){ ans[v[0]] = l; return ; } vector<int> p , q; int m = (l + r) / 2; for(int i = l;i <= r; ++ i){ string s = string(sz , '1'); for(int j = l;j <= r; ++ j) s[v[j - l]] = '0'; s[v[i - l]] = '1'; if(check_element(s)) p.push_back(v[i - l]); else q.push_back(v[i - l]); } devide_conquare(p , l , m); devide_conquare(q , m + 1 , r); } std::vector<int> restore_permutation(int n, int w, int r) { sz = n; build(0 , n - 1); compile_set(); vector<int> v; for(int i = 0;i < n; ++ i) v.push_back(i); ans = v; devide_conquare(v , 0 , n - 1); 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...