Submission #65289

# Submission time Handle Problem Language Result Execution time Memory
65289 2018-08-07T10:06:29 Z mhnd Unscrambling a Messy Bug (IOI16_messy) C++17
0 / 100
2 ms 384 KB
#include "messy.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef unsigned long long ull;
const int N = 3e5+50;
const ll oo = 1e18;
const ll mod = 1e9+7;

int n;
vector<int> ans;
string a;

void add(int l,int r){
	if(l > r)return;
	int md = (l+r)/2;
	string s = "";
	for(int i=0;i<n;i++)s += '1';
	for(int i=l;i<r;i++)s += '0';
	for(int i=l;i<md;i++){
		s[i] = '1';
		add_element(s);
		s[i] = '0';
	}
	add(l,md);
	add(md,r);
}

void ask(int l,int r,string s){
	if(l > r){
		for(int i=0;i<n;i++)
			if(s[i] == '0')ans[i] = l;
		return;
	}
	int md = (l+r)/2;
	string x=s,y="";
	for(int i=0;i<n;i++)y+='1';
	for(int i=0;i<n;i++){
		if(s[i] == '0'){
			s[i]='1';
			if(check_element(s)){
				x[i] = '1';
				y[i] = '0';
			}
			s[i]='0';
		}
	}
	ask(l,md,y);
	ask(md,r,x);
}

vector<int> restore_permutation(int N, int w, int r) {
	int n = N;
	add(0,n);
	compile_set();
	ans.resize(n);
	for(int i=0;i<n;i++)a += '0';
	ask(0,n,a);
	return ans;
}
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 384 KB grader returned WA
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 256 KB grader returned WA
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 256 KB grader returned WA
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 384 KB grader returned WA
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 384 KB grader returned WA
2 Halted 0 ms 0 KB -