Submission #299669

#TimeUsernameProblemLanguageResultExecution timeMemory
299669E869120Football (info1cup20_football)C++14
50 / 100
29 ms1536 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() { long long ret = 0; for (int i = 1; i <= N; i++) ret += A[i]; if (ret % 2LL == 1LL) return true; long long ret2 = 0; for (int i = 1; i <= N; i++) ret2 += (A[i] >> 1LL); if (ret2 % 2LL == 1LL) return true; 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; if (K == 1) ret = solve_Subtask1(); else if (K == 2) ret = solve_Subtask6(); else ret = solve_Subtask4(); 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...