iscsi

codechef 2011 aug infinite grid game

Aug 1st, 2011
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <sstream>
  4. #include <string>
  5. #include <vector>
  6. #include <queue>
  7. #include <set>
  8. #include <map>
  9. #include <cstdio>
  10. #include <cstdlib>
  11. #include <cctype>
  12. #include <cmath>
  13. using namespace std;
  14. typedef long long LL;
  15. #define FOR(k,a,b) for(int k(a); k < (b); ++k)
  16. #define REP(k,a) for(int k=0; k < (a); ++k)
  17.  
  18. int main()
  19. {
  20.     int T,m,n,p,q;
  21.     vector<vector<int> > state(1001,vector<int> (1001));
  22.     //0-1 m direction can win, 2-0 n direction, 4-0 diagonal
  23.     //state[0][0] loose
  24.     REP(i,1001)
  25.     REP(j,1001)
  26.     {
  27.         if(i && ((state[i-1][j]&1) || !state[i-1][j]))
  28.             state[i][j]|=1;
  29.         if(j && ((state[i][j-1]&2)|| !state[i][j-1]))
  30.             state[i][j]|=2;
  31.         if(i && j && ((state[i-1][j-1]&4)|| !state[i-1][j-1]))
  32.             state[i][j]|=4;
  33.     }
  34.     cin >> T;
  35.     REP(testcase,T)
  36.     {
  37.         cin >> m >> n >> p >> q;
  38.         m-=p;n-=q;
  39.         if(state[m][n])
  40.             cout << "Alice" << endl;
  41.         else
  42.             cout << "Bob" << endl;
  43.     }
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment