Submission #808638

# Submission time Handle Problem Language Result Execution time Memory
808638 2023-08-05T08:27:29 Z AlphaBruh Unscrambling a Messy Bug (IOI16_messy) C++14
100 / 100
2 ms 500 KB
#include "messy.h"
#include<bits/stdc++.h>
using namespace std;
int n=128;
string all_zero="";
vector<int>to(128,0);
void build(int l=0 , int r=n-1, string base=all_zero){
	if(l==r) return;
	int mid = (l+r)>>1;
	for(int i = l; i <= mid; i++){
		string tmp = base;
		tmp[i]='1';
		add_element(tmp);
	}
	string lft_base=base,rgt_base=base;
	for(int i = l; i <= mid; i++){
		rgt_base[i]='1';
	}
	for(int i = mid+1; i <= r; i++){
		lft_base[i]='1';
	}
	build(l,mid,lft_base);
	build(mid+1,r,rgt_base);
	return;
}
void slv(vector<int>prge,int  l=0 , int r=n-1, string base=all_zero){
	if(l==r){
		to[l]=prge[0];
		return;
	}
	int mid = (l+r)>>1;
	vector<int>inlft;
	vector<int>inrgt;
	for(int i = 0; i < prge.size(); i++){
		int ploc = prge[i];
		string tmp = base;
		tmp[ploc]='1';
		bool isq = check_element(tmp);
		if(isq==0){
			inrgt.push_back(ploc);
		}
		else{
			inlft.push_back(ploc);
		}
	}
	string lft_base=base,rgt_base=base;
	for(int loc : inrgt){
		lft_base[loc]='1';
	}
	for(int loc : inlft){
		rgt_base[loc]='1';
	}
	slv(inlft,l,mid,lft_base);
	slv(inrgt,mid+1,r,rgt_base);
	return;
}
vector<int> restore_permutation(int N, int W, int R) {
	n = N;
	to.assign(n,0);
	for(int i = 0; i < n; i++){
		all_zero=all_zero+"0";
	}
	build();
	compile_set();
	vector<int>srge(n,0);
	for(int i = 0; i < n; i++) srge[i]=i;
	slv(srge);
	vector<int>rt(n,0);
	for(int i = 0; i < n; i++){
		rt[to[i]]=i;
	}
	return rt;
}

Compilation message

messy.cpp: In function 'void slv(std::vector<int>, int, int, std::string)':
messy.cpp:34:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |  for(int i = 0; i < prge.size(); i++){
      |                 ~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB n = 8
2 Correct 0 ms 212 KB n = 8
3 Correct 0 ms 212 KB n = 8
4 Correct 1 ms 212 KB n = 8
5 Correct 1 ms 212 KB n = 8
6 Correct 0 ms 212 KB n = 8
7 Correct 0 ms 212 KB n = 8
8 Correct 0 ms 212 KB n = 8
9 Correct 0 ms 212 KB n = 8
10 Correct 0 ms 212 KB n = 8
11 Correct 0 ms 212 KB n = 8
12 Correct 0 ms 212 KB n = 8
13 Correct 0 ms 212 KB n = 8
14 Correct 0 ms 212 KB n = 8
15 Correct 0 ms 212 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB n = 32
2 Correct 1 ms 212 KB n = 32
3 Correct 1 ms 212 KB n = 32
4 Correct 1 ms 212 KB n = 32
5 Correct 1 ms 212 KB n = 32
6 Correct 1 ms 212 KB n = 32
7 Correct 1 ms 212 KB n = 32
8 Correct 1 ms 212 KB n = 32
9 Correct 1 ms 212 KB n = 32
10 Correct 0 ms 212 KB n = 32
11 Correct 1 ms 212 KB n = 32
12 Correct 0 ms 212 KB n = 32
13 Correct 0 ms 212 KB n = 32
14 Correct 0 ms 212 KB n = 32
15 Correct 0 ms 212 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 0 ms 244 KB n = 32
2 Correct 1 ms 212 KB n = 32
3 Correct 0 ms 212 KB n = 32
4 Correct 0 ms 212 KB n = 32
5 Correct 1 ms 212 KB n = 32
6 Correct 0 ms 212 KB n = 32
7 Correct 1 ms 212 KB n = 32
8 Correct 0 ms 212 KB n = 32
9 Correct 1 ms 212 KB n = 32
10 Correct 1 ms 212 KB n = 32
11 Correct 0 ms 212 KB n = 32
12 Correct 0 ms 212 KB n = 32
13 Correct 0 ms 212 KB n = 32
14 Correct 0 ms 212 KB n = 32
15 Correct 0 ms 212 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB n = 128
2 Correct 1 ms 468 KB n = 128
3 Correct 1 ms 468 KB n = 128
4 Correct 1 ms 468 KB n = 128
5 Correct 1 ms 468 KB n = 128
6 Correct 1 ms 468 KB n = 128
7 Correct 1 ms 468 KB n = 128
8 Correct 1 ms 468 KB n = 128
9 Correct 1 ms 468 KB n = 128
10 Correct 1 ms 468 KB n = 128
11 Correct 1 ms 468 KB n = 128
12 Correct 1 ms 468 KB n = 128
13 Correct 1 ms 468 KB n = 128
14 Correct 1 ms 468 KB n = 128
15 Correct 1 ms 468 KB n = 128
# Verdict Execution time Memory Grader output
1 Correct 1 ms 468 KB n = 128
2 Correct 1 ms 468 KB n = 128
3 Correct 1 ms 468 KB n = 128
4 Correct 1 ms 468 KB n = 128
5 Correct 2 ms 468 KB n = 128
6 Correct 1 ms 468 KB n = 128
7 Correct 1 ms 468 KB n = 128
8 Correct 1 ms 468 KB n = 128
9 Correct 1 ms 468 KB n = 128
10 Correct 1 ms 468 KB n = 128
11 Correct 1 ms 468 KB n = 128
12 Correct 1 ms 500 KB n = 128
13 Correct 1 ms 468 KB n = 128
14 Correct 1 ms 468 KB n = 128
15 Correct 1 ms 468 KB n = 128