fork(1) download
  1. #include <stdio.h>
  2.  
  3. char s[1024];
  4. int q[16], tab[15625], got[15625];
  5.  
  6. int f(int s, int r)
  7. {
  8. int k;
  9.  
  10. if (got[r] == 42) return tab[r];
  11. got[r] = 42;
  12.  
  13. if (s > 31) return tab[r] = 0;
  14.  
  15. for (k = 0; k < 6; k++)
  16. if (((r / q[k]) % 5) != 4 && s+k+1 <= 31 && f(s+k+1, r + q[k]) == 0)
  17. return tab[r] = 1;
  18. return tab[r] = 0;
  19. }
  20.  
  21. int solve()
  22. {
  23. int i, j, k, z, w;
  24.  
  25. for (q[0] = 1, i = 1; i < 16; i++)
  26. q[i] = q[i-1] * 5;
  27.  
  28. for (z = w = k = 0, i = 0; s[i]; i++)
  29. if ('1' <= s[i] && s[i] <= '6') {
  30. k ^= 1;
  31. w += s[i] - '0';
  32. z += q[s[i] - '1'];
  33. }
  34.  
  35. return (f(w,z) ? k : (k ^ 1)) + 'A';
  36. }
  37.  
  38. int main()
  39. {
  40. while (gets(s))
  41. printf("%s %c\n", s, solve());
  42. return 0;
  43. }
Success #stdin #stdout 0s 3420KB
stdin
356656
3566561
3566562
3566563
3566564
3566565
3566566
stdout
356656 B
3566561 A
3566562 A
3566563 A
3566564 A
3566565 A
3566566 A