Submission #389030

# Submission time Handle Problem Language Result Execution time Memory
389030 2021-04-13T14:05:09 Z alishahali1382 Unscrambling a Messy Bug (IOI16_messy) C++14
100 / 100
3 ms 472 KB
#include "messy.h"
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> pii;
#define debug(x) {cerr<<#x<<"="<<x<<"\n";}
#define debug2(x, y) {cerr<<#x<<", "<<#y<<" = "<<x<<", "<<y<<"\n";}
#define debugp(p) {cerr<<#p<<"={"<<p.first<<", "<<p.second<<"}\n";}
#define pb push_back
#define all(x) x.begin(), x.end()

const int inf=1000001000;
const int N=128;


vector<int> restore_permutation(int n, int w, int r){
	string S, all0;
	for (int i=0; i<n; i++) all0+='0';
	vector<int> A(n, 0);
	for (int bit=0; (1<<bit)<n; bit++){
		for (int i=0; i<n; i++) if (i&(1<<bit)){
			S=all0;
			S[i]='1';
			if (bit){
				for (int j=0; j<n; j++){
					int x=(i&((1<<bit)-1)), y=(j&((1<<bit)-1));
					if ((x^y)+1==(1<<bit)) S[j]='1'; 
				}
			}
			add_element(S);
			// debug(S)
		}
	}
	// debug("compile")
    compile_set();
    for (int bit=0; (1<<bit)<n; bit++){
		for (int i=0; i<n; i++){
			S=all0;
			S[i]='1';
			if (bit){
				for (int j=0; j<n; j++){
					int x=(A[i]&((1<<bit)-1)), y=(A[j]&((1<<bit)-1));
					if ((x^y)+1==(1<<bit)) S[j]='1'; 
				}
			}
			// cerr<<bit<<" "<<i<<"  "<<S<<"\n";
			if (check_element(S)) A[i]|=(1<<bit);
		}
		// cerr<<"A: ";for (int i=0; i<n; i++) cerr<<A[i]<<" \n"[i==n-1];
	}
	return A;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB n = 8
2 Correct 1 ms 204 KB n = 8
3 Correct 1 ms 204 KB n = 8
4 Correct 1 ms 204 KB n = 8
5 Correct 1 ms 204 KB n = 8
6 Correct 1 ms 204 KB n = 8
7 Correct 1 ms 204 KB n = 8
8 Correct 1 ms 296 KB n = 8
9 Correct 1 ms 204 KB n = 8
10 Correct 1 ms 292 KB n = 8
11 Correct 1 ms 204 KB n = 8
12 Correct 0 ms 204 KB n = 8
13 Correct 1 ms 204 KB n = 8
14 Correct 1 ms 204 KB n = 8
15 Correct 1 ms 204 KB n = 8
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB n = 32
2 Correct 1 ms 208 KB n = 32
3 Correct 1 ms 204 KB n = 32
4 Correct 1 ms 204 KB n = 32
5 Correct 1 ms 204 KB n = 32
6 Correct 1 ms 296 KB n = 32
7 Correct 1 ms 204 KB n = 32
8 Correct 1 ms 204 KB n = 32
9 Correct 1 ms 204 KB n = 32
10 Correct 1 ms 204 KB n = 32
11 Correct 1 ms 204 KB n = 32
12 Correct 1 ms 204 KB n = 32
13 Correct 1 ms 204 KB n = 32
14 Correct 1 ms 204 KB n = 32
15 Correct 1 ms 204 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB n = 32
2 Correct 1 ms 204 KB n = 32
3 Correct 1 ms 204 KB n = 32
4 Correct 1 ms 204 KB n = 32
5 Correct 1 ms 204 KB n = 32
6 Correct 1 ms 204 KB n = 32
7 Correct 1 ms 204 KB n = 32
8 Correct 1 ms 204 KB n = 32
9 Correct 1 ms 204 KB n = 32
10 Correct 1 ms 204 KB n = 32
11 Correct 1 ms 292 KB n = 32
12 Correct 1 ms 204 KB n = 32
13 Correct 1 ms 204 KB n = 32
14 Correct 1 ms 204 KB n = 32
15 Correct 1 ms 204 KB n = 32
# Verdict Execution time Memory Grader output
1 Correct 2 ms 460 KB n = 128
2 Correct 2 ms 460 KB n = 128
3 Correct 2 ms 424 KB n = 128
4 Correct 2 ms 460 KB n = 128
5 Correct 3 ms 460 KB n = 128
6 Correct 3 ms 460 KB n = 128
7 Correct 2 ms 460 KB n = 128
8 Correct 2 ms 460 KB n = 128
9 Correct 2 ms 460 KB n = 128
10 Correct 2 ms 468 KB n = 128
11 Correct 3 ms 468 KB n = 128
12 Correct 2 ms 468 KB n = 128
13 Correct 2 ms 460 KB n = 128
14 Correct 3 ms 464 KB n = 128
15 Correct 2 ms 464 KB n = 128
# Verdict Execution time Memory Grader output
1 Correct 3 ms 460 KB n = 128
2 Correct 2 ms 464 KB n = 128
3 Correct 2 ms 428 KB n = 128
4 Correct 2 ms 424 KB n = 128
5 Correct 2 ms 424 KB n = 128
6 Correct 2 ms 472 KB n = 128
7 Correct 2 ms 472 KB n = 128
8 Correct 2 ms 472 KB n = 128
9 Correct 2 ms 472 KB n = 128
10 Correct 3 ms 472 KB n = 128
11 Correct 3 ms 472 KB n = 128
12 Correct 2 ms 472 KB n = 128
13 Correct 2 ms 472 KB n = 128
14 Correct 2 ms 460 KB n = 128
15 Correct 2 ms 460 KB n = 128