Submission #171610

# Submission time Handle Problem Language Result Execution time Memory
171610 2019-12-29T11:37:49 Z maximath_1 Unscrambling a Messy Bug (IOI16_messy) C++11
100 / 100
4 ms 632 KB
#include "messy.h"
#include<bits/stdc++.h>
using namespace std;
#define init int cl=0, int cr=n-1
#define md (cl+cr)/2
#define lc cl, md
#define rc md+1, cr
int n, p[128];
void add(init){
	if(cl==cr) return;
	string str(n, '0');
	for(int i=cl; i<=cr; i++)
		str[i]='1';
	for(int i=md+1; i<=cr; i++){
		str[i]='0';
		add_element(str);
		str[i]='1';
	}
	add(lc); add(rc);
}
void check(vector<int>s, init){
	if(cl==cr){
		p[s[0]]=cl; return;
	}
	string str(n, '0');
	for(auto &i:s) str[i]='1';
	vector<int>l, r;
	for(auto &i:s){
		str[i]='0';
		if(check_element(str)) r.push_back(i);
		else l.push_back(i);
		str[i]='1';
	}
	check(l, lc); check(r, rc);
}
vector<int> restore_permutation(int _n, int w, int r){
	n=_n;
	add();
	compile_set();
	vector<int>v;
	for(int i=0; i<n; i++) v.push_back(i);
	check(v);
	vector<int>ans;
	for(int i=0; i<n; i++) ans.push_back(p[i]);
	return ans;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB n = 8
2 Correct 2 ms 256 KB n = 8
3 Correct 2 ms 256 KB n = 8
4 Correct 2 ms 376 KB n = 8
5 Correct 2 ms 376 KB n = 8
6 Correct 2 ms 376 KB n = 8
7 Correct 2 ms 256 KB n = 8
8 Correct 2 ms 376 KB n = 8
9 Correct 2 ms 376 KB n = 8
10 Correct 2 ms 256 KB n = 8
11 Correct 2 ms 256 KB n = 8
12 Correct 2 ms 256 KB n = 8
13 Correct 2 ms 256 KB n = 8
14 Correct 2 ms 256 KB n = 8
15 Correct 2 ms 256 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB n = 32
2 Correct 2 ms 376 KB n = 32
3 Correct 2 ms 504 KB n = 32
4 Correct 2 ms 376 KB n = 32
5 Correct 4 ms 376 KB n = 32
6 Correct 2 ms 376 KB n = 32
7 Correct 2 ms 376 KB n = 32
8 Correct 2 ms 376 KB n = 32
9 Correct 2 ms 376 KB n = 32
10 Correct 2 ms 376 KB n = 32
11 Correct 2 ms 376 KB n = 32
12 Correct 2 ms 380 KB n = 32
13 Correct 2 ms 376 KB n = 32
14 Correct 2 ms 376 KB n = 32
15 Correct 2 ms 376 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB n = 32
2 Correct 2 ms 376 KB n = 32
3 Correct 2 ms 376 KB n = 32
4 Correct 3 ms 376 KB n = 32
5 Correct 2 ms 376 KB n = 32
6 Correct 2 ms 376 KB n = 32
7 Correct 2 ms 376 KB n = 32
8 Correct 2 ms 376 KB n = 32
9 Correct 2 ms 376 KB n = 32
10 Correct 2 ms 376 KB n = 32
11 Correct 2 ms 376 KB n = 32
12 Correct 2 ms 376 KB n = 32
13 Correct 2 ms 376 KB n = 32
14 Correct 2 ms 376 KB n = 32
15 Correct 2 ms 376 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 3 ms 504 KB n = 128
2 Correct 3 ms 504 KB n = 128
3 Correct 3 ms 504 KB n = 128
4 Correct 4 ms 632 KB n = 128
5 Correct 4 ms 504 KB n = 128
6 Correct 4 ms 548 KB n = 128
7 Correct 3 ms 504 KB n = 128
8 Correct 3 ms 504 KB n = 128
9 Correct 3 ms 504 KB n = 128
10 Correct 3 ms 488 KB n = 128
11 Correct 3 ms 504 KB n = 128
12 Correct 3 ms 504 KB n = 128
13 Correct 4 ms 504 KB n = 128
14 Correct 3 ms 504 KB n = 128
15 Correct 3 ms 504 KB n = 128
# Verdict Execution time Memory Grader output
1 Correct 3 ms 504 KB n = 128
2 Correct 4 ms 632 KB n = 128
3 Correct 3 ms 504 KB n = 128
4 Correct 3 ms 504 KB n = 128
5 Correct 4 ms 504 KB n = 128
6 Correct 3 ms 508 KB n = 128
7 Correct 4 ms 504 KB n = 128
8 Correct 4 ms 504 KB n = 128
9 Correct 3 ms 504 KB n = 128
10 Correct 4 ms 504 KB n = 128
11 Correct 4 ms 504 KB n = 128
12 Correct 4 ms 508 KB n = 128
13 Correct 4 ms 504 KB n = 128
14 Correct 4 ms 504 KB n = 128
15 Correct 4 ms 504 KB n = 128