Submission #364977

# Submission time Handle Problem Language Result Execution time Memory
364977 2021-02-10T16:32:14 Z Matteo_Verz Football (info1cup20_football) C++17
100 / 100
54 ms 2048 KB
/*
                `-/oo+/-   ``
              .oyhhhhhhyo.`od
             +hhhhyyoooos. h/
            +hhyso++oosy- /s
           .yoooossyyo:``-y`
            ..----.` ``.-/+:.`
                   `````..-::/.
                  `..```.-::///`
                 `-.....--::::/:
                `.......--::////:
               `...`....---:::://:
             `......``..--:::::///:`
            `---.......--:::::////+/`
            ----------::::::/::///++:
            ----:---:::::///////////:`
            .----::::::////////////:-`
            `----::::::::::/::::::::-
             `.-----:::::::::::::::-
               ...----:::::::::/:-`
                 `.---::/+osss+:`
                   ``.:://///-.
*/
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
#include <stack>
#include <queue>
#include <bitset>
#include <random>
#include <deque>
#include <set>
#include <map>
#include <cmath>
#define debug(x) cerr << #x << " " << x << '\n'
#define debugsp(x) cerr << #x << " " << x << ' '
 
using namespace std;
 
const int INF = 2e9;
const int N = 1e5;
 
int v[1 + N];
 
int answer;
void Solve(int n, int k) {
  int s(0);
  for(int i = 1; i <= n; i++)
    s ^= (v[i] & 1);
  if(k == 1) {
    answer = s;
    return;
  }
  if(s & 1) {
    answer = 1;
    return;
  }
  
  for(int i = 1; i <= n; i++)
    v[i] >>= 1;
  Solve(n, k >> 1);
}
 
int main() {
  int t;
  scanf("%d", &t);
 
  while(t--) {
    int n, k;
    scanf("%d%d", &n, &k);
    for(int i = 1; i <= n; i++) scanf("%d", &v[i]);
    Solve(n, k);
    printf("%d", answer); 
    answer = 0;
  }
  return 0;
}

Compilation message

football.cpp: In function 'int main()':
football.cpp:68:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   68 |   scanf("%d", &t);
      |   ~~~~~^~~~~~~~~~
football.cpp:72:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   72 |     scanf("%d%d", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~
football.cpp:73:38: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   73 |     for(int i = 1; i <= n; i++) scanf("%d", &v[i]);
      |                                 ~~~~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 17 ms 1404 KB Output is correct
2 Correct 17 ms 1388 KB Output is correct
3 Correct 16 ms 1388 KB Output is correct
4 Correct 17 ms 1388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 1 ms 364 KB Output is correct
4 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 14 ms 628 KB Output is correct
2 Correct 13 ms 620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 37 ms 1132 KB Output is correct
2 Correct 47 ms 1132 KB Output is correct
3 Correct 37 ms 1132 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 53 ms 2028 KB Output is correct
2 Correct 54 ms 2048 KB Output is correct
3 Correct 52 ms 2028 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 17 ms 1388 KB Output is correct
2 Correct 21 ms 1388 KB Output is correct
3 Correct 17 ms 1516 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 22 ms 1336 KB Output is correct
2 Correct 17 ms 1388 KB Output is correct
3 Correct 18 ms 1388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 17 ms 1408 KB Output is correct
2 Correct 19 ms 1404 KB Output is correct