Advertisement
Guest User

Untitled

a guest
Feb 20th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6. typedef long double ld;
  7. typedef unsigned long long ull;
  8. typedef pair< ll, ll > ii;
  9. typedef vector< ll > vi;
  10. typedef vector< ii > vii;
  11.  
  12. #define INF 0x3F3F3F3F
  13. #define LINF 0x3F3F3F3F3F3F3F3FLL
  14. #define pb push_back
  15. #define mp make_pair
  16. #define pq priority_queue
  17. #define LSONE(s) ((s)&(-s))
  18. #define DEG_to_RAD(X) (X * PI / 180)
  19. #define F first
  20. #define S second
  21.  
  22. #ifdef ONLINE_JUDGE
  23. #define debug(args...)
  24. #else
  25. #define debug(args...) fprintf(stderr,args)
  26. #endif
  27.  
  28. void arquivo() {
  29. freopen("crossroad.in", "r", stdin);
  30. freopen("crossroad.out", "w", stdout);
  31. }
  32.  
  33. const int N = 61;
  34.  
  35. /*
  36. int pd[N][1 << N];
  37.  
  38. int func(int pos, int mask) {
  39. if(pd[pos][mask] != -1) return pd[pos][mask];
  40. if(pos == 0) return 0;
  41. set<int>s;
  42. for(int i = 1; i <= pos; ++i) {
  43. if((mask >> i) & 1) continue;
  44. s.insert(func(pos - i, mask | (1 << i)));
  45. }
  46. set<int>::iterator it = s.begin();
  47. int at = 0;
  48. while(it != s.end() && *it == at) it++, at++;
  49. return pd[pos][mask] = at;
  50. }
  51. */
  52.  
  53. int nim[N];
  54.  
  55. int main() {
  56. int lol = 2;
  57. int q = 2;
  58. int at = 1;
  59. for(int i = 1; i <= 60; ++i) {
  60. nim[i] = at;
  61. q--;
  62. if(q == 0) {
  63. lol++;
  64. q = lol;
  65. at++;
  66. }
  67. }
  68. int n; scanf("%d", &n);
  69. int foo = 0;
  70. for(int i = 0; i < n; ++i) {
  71. int x; scanf("%d", &x);
  72. foo ^= nim[x];
  73. }
  74. puts(!foo ? "YES" : "NO");
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement