#include <vector>
#include <cstdio>
#include <string>
#include <set>
#include <cstdlib>
#include <iostream>
#include "messy.h"
using namespace std;
string send_string(int l,int r,int ind,int n){
string sir;
int i;
for(i=0;i<n;++i)
if(i<l || i>r || i==ind)
sir.push_back('1');
else
sir.push_back('0');
return sir;
}
void send_all_strings(int l,int r,int n){
if(l<r){
int mij=(l+r)/2;
int i;
for(i=l;i<=mij;++i)
add_element(send_string(l,r,i,n));
send_all_strings(l,mij,n);
send_all_strings(mij+1,r,n);
}
}
struct interval{
int l,r;
}ans[128];
string get_string(int ind,int n){
string sir;
int i;
for(i=0;i<n;++i)
if((ans[i].l!=ans[ind].l && ans[i].r!=ans[ind].r) || i==ind)
sir.push_back('1');
else
sir.push_back('0');
return sir;
}
vector<int> restore_permutation(int n, int w, int r) {
send_all_strings(0,n-1,n);
compile_set();
int i,j;
for(i=0;i<n;++i){
ans[i].l=0;
ans[i].r=n-1;
}
for(j=n/2;j;j/=2)
for(i=0;i<n;++i){
int mij=(ans[i].l+ans[i].r)/2;
if(check_element(get_string(i,n)))
ans[i].r=mij;
else
ans[i].l=mij+1;
}
vector<int>answer;
for(i=0;i<n;++i)
answer.push_back(ans[i].l);
return answer;
}
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... |