#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |