This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "messy.h"
using namespace std;
int ans[300], n;
string zero;
void solve_add(int ini, int fim)
{
int mid = (ini + fim)/2;
if(ini == fim) return;
string s = zero;
for(int i = ini; i <= fim; i++) s[i] = '1';
//cout<<ini<<" "<<fim<<"\n";
for(int i = mid + 1; i <= fim; i++)
{
s[i] = '0';
//cout<<"ADD STRING "<<s<<" -> "<<novo(s)<<"\n";
add_element(s);
s[i] = '1';
}
//cout<<"\n";
solve_add(ini, mid), solve_add(mid + 1, fim);
}
void solve_check(int ini, int fim, vector<int> free)
{
//cout<<ini<<" "<<fim<<"\n";
int mid = (ini + fim)/2;
string s = zero;
vector<int> esq, dir;
if(ini == fim)
{
//cout<<free.size()<<"\n";
if(free.size()) ans[free[0]] = ini;
return;
}
for(int i = 0; i < free.size(); i++) s[ free[i] ] = '1';
for(int i = 0; i < free.size(); i++)
{
int p = free[i];
s[p] = '0';
if(check_element(s)) dir.push_back(p);
else esq.push_back(p);
s[p] = '1';
}
//for(auto x: dir) cout<<"DIR "<<x<<"\n";
//for(auto x: esq) cout<<"ESQ "<<x<<'\n';
solve_check(ini, mid, esq), solve_check(mid + 1, fim, dir);
}
vector<int> vini, resp;
vector<int> restore_permutation(int N_, int w, int r)
{
n = N_;
for(int i = 0; i < n; i++) zero.push_back('0'), vini.push_back(i);
solve_add(0, n - 1);
compile_set();
solve_check(0, n - 1, vini);
for(int i = 0; i < n; i++) resp.push_back(ans[i]);
return resp;
}
Compilation message (stderr)
messy.cpp: In function 'void solve_check(int, int, std::vector<int>)':
messy.cpp:56:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < free.size(); i++) s[ free[i] ] = '1';
~~^~~~~~~~~~~~~
messy.cpp:58:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < free.size(); i++)
~~^~~~~~~~~~~~~
# | 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... |