Submission #299671

#TimeUsernameProblemLanguageResultExecution timeMemory
299671E869120Football (info1cup20_football)C++14
100 / 100
53 ms2328 KiB
#include <bits/stdc++.h>
using namespace std;

long long T, N, K;
long long A[1 << 18];
int dp[109][109];

void init() {
	for (int i = 1; i <= 100; i++) {
		for (int j = 0; j <= 100; j++) {
			bool used[109];
			for (int k = 0; k <= 100; k++) used[k] = false;
			for (int k = 1; k <= min(i, j); k++) {
				used[dp[k][j - k]] = true;
			}
			for (int k = 0; k <= 100; k++) {
				if (used[k] == false) { dp[i][j] = k; break; }
			}
		}
	}
}

bool solve_Subtask1() {
	long long ret = 0;
	for (int i = 1; i <= N; i++) ret += A[i];
	if (ret % 2LL == 1LL) return true;
	return false;
}

bool solve_Subtask6() {
	while (K >= 1) {
		long long ret = 0;
		for (int i = 1; i <= N; i++) ret += A[i];
		if (ret % 2LL == 1LL) return true;
		for (int i = 1; i <= N; i++) A[i] /= 2LL;
		K /= 2LL;
	}
	return false;
}

bool solve_Subtask4() {
	int ret = 0;
	for (int i = 1; i <= N; i++) ret ^= dp[min(K, 100LL)][A[i]];
	if (ret == 0) return false;
	return true;
}

int main() {
	init();
	string str = "";
	scanf("%lld", &T);
	for (int i = 1; i <= T; i++) {
		scanf("%lld%lld", &N, &K);
		for (int j = 1; j <= N; j++) scanf("%lld", &A[j]);
		bool ret = false;
		ret = solve_Subtask6();
		if (ret == false) str += "0";
		if (ret == true) str += "1";
	}
	cout << str << endl;
	return 0;
}

Compilation message (stderr)

football.cpp: In function 'int main()':
football.cpp:51:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   51 |  scanf("%lld", &T);
      |  ~~~~~^~~~~~~~~~~~
football.cpp:53:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   53 |   scanf("%lld%lld", &N, &K);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~
football.cpp:54:37: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   54 |   for (int j = 1; j <= N; j++) scanf("%lld", &A[j]);
      |                                ~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...