Submission #471359

# Submission time Handle Problem Language Result Execution time Memory
471359 2021-09-08T14:34:46 Z lovrot Question (Grader is different from the original contest) (CEOI14_question_grader) C++11
100 / 100
4782 ms 24248 KB
#include <bits/stdc++.h>

using namespace std;

bool breakb = false;

vector<int> out;

int m;

void shuffle(int x, int pos, int par){
	//cout << x << ' ' << pos << ' ' << par << "\n"; 

	if(breakb) return;

	if(pos >= 12){ 
		out.push_back(par);
		if(out.size() > m)
			breakb = true;

		return;
	}

	if(x) 
		shuffle(x - 1, pos + 1, par ^ (1 << pos));
	
	if(12 - pos > x)
		shuffle(x, pos + 1, par);
}

int encode(int n, int x, int y){ 
	ios_base::sync_with_stdio(false);
	
	m = n;
	shuffle(6, 0, 0);

	for (int i = 0; i < 12; i++)
		if ((out[x] & (1 << i)) && (!(out[y] & (1 << i))))
			return i+1;
}
#include <bits/stdc++.h>

using namespace std;

bool breakb = false;

vector<int> out;

int m;

void shuffle(int x, int pos, int par){
	//cout << x << ' ' << pos << ' ' << par << "\n"; 

	if(breakb) return;
	
	if(pos >= 12){ 
		out.push_back(par);
		if(out.size() > m)
			breakb = true;

		return;
	}

	if(x) 
		shuffle(x - 1, pos + 1, par ^ (1 << pos));
	
	if(12 - pos > x)
		shuffle(x, pos + 1, par);
}

int decode(int n, int q, int h){ 
	ios_base::sync_with_stdio(false);
	m = n;
	shuffle(6, 0, 0);

	

	if(out[q] & (1 << (h - 1))) return 1;
	return 0;
}

Compilation message

encoder.cpp: In function 'void shuffle(int, int, int)':
encoder.cpp:18:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |   if(out.size() > m)
      |      ~~~~~~~~~~~^~~
encoder.cpp: In function 'int encode(int, int, int)':
encoder.cpp:40:1: warning: control reaches end of non-void function [-Wreturn-type]
   40 | }
      | ^

decoder.cpp: In function 'void shuffle(int, int, int)':
decoder.cpp:18:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |   if(out.size() > m)
      |      ~~~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 4782 ms 24184 KB Output is correct - maxh = 12
2 Correct 4277 ms 24248 KB Output is correct - maxh = 12