Cod sursa(job #1991949)

Utilizator TincaMateiTinca Matei TincaMatei Data 18 iunie 2017 20:16:17
Problema Bowling Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>

int sg[72] = {0,1,2,3,1,4,3,2,1,4,2,6,4,1,2,7,1,4,3,2,1,4,6,7,4,1,2,8,5,4,7,2,1,8,6,7,4,1,2,3,1,4,7,2,1,8,2,7,4,1,2,8,1,4,7,2,1,4,2,7,4,1,2,8,1,4,7,2,1,8,6,7};
int sg2[12] = {4,1,2,8,1,4,7,2,1,8,2,7};

int sgf(int x) {
  if(x < 72)
    return sg[x];
  return sg2[x % 12];
}

int main() {
  int t, n, x, cons, s;
  FILE *fin = fopen("bowling.in", "r");
  FILE *fout = fopen("bowling.out", "w");
  fscanf(fin, "%d", &t);
  for(int i = 0; i < t; ++i) {
    fscanf(fin, "%d", &n);
    cons = 0;
    s = 0;
    for(int i = 0; i < n; ++i) {
      fscanf(fin, "%d", &x);
      if(x == 1)
        ++cons;
      else if(cons <= 72) {
        s = s ^ sgf(cons);
        cons = 0;
      }
    }
    s = s ^ sgf(cons);
    if(s != 0)
      fprintf(fout, "Nargy\n");
    else
      fprintf(fout, "Fumeanu\n");
  }
  fclose(fin);
  fclose(fout);
  return 0;
}