Advertisement
Guest User

Untitled

a guest
Jan 31st, 2018
514
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.44 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #ifdef ONLINE_JUDGE
  6. #define OJ 1
  7. #else
  8. #define OJ 0
  9. #endif
  10.  
  11. #define dd              double
  12. #define ll              int
  13. #define pb              push_back
  14. #define mp              make_pair
  15. #define X               first
  16. #define Y               second
  17. #define forn( i, n )    for( ll i = 0; i < (ll) (n); i ++ )
  18. #define endl            '\n'
  19.  
  20. #define TIMESTAMP fprintf(stderr, "Execution time: %.3lf s.\n", (double)clock()/CLOCKS_PER_SEC)
  21.  
  22. struct __s { __s() {
  23.         //srand( time( NULL ) );
  24.         //freopen( "input.txt", "r", stdin ); freopen( "output.txt", "w", stdout );
  25.         if( OJ ) { ios_base::Init i; cin.sync_with_stdio( 0 ); cin.tie( 0 ); }
  26.     } ~__s() {
  27.         if( !OJ ) TIMESTAMP;
  28.         ll n; cin >> n;
  29.     }
  30. } __S;
  31.  
  32. bool dp[10][10][10][10][10][10][10][10][2];
  33.  
  34. int main( void ) {
  35.     forn( i, 9 ) {
  36.         forn( j, 9 ) {
  37.             forn( k, 9 ) {
  38.                 forn( l, 9 ) {
  39.                     dp[0][0][0][0][i][j][k][l][0] = true;
  40.                     dp[0][0][0][0][i][j][k][l][1] = true;
  41.                     dp[i][j][k][l][0][0][0][0][0] = false;
  42.                     dp[i][j][k][l][0][0][0][0][1] = false;
  43.                 }
  44.             }
  45.         }
  46.     }
  47.     forn( i1, 9 ) {
  48.         forn( j1, 9 ) {
  49.             forn( k1, 9 ) {
  50.                 forn( l1, 9 ) {
  51.                     if( i1 + j1 + k1 + l1 == 0 )
  52.                         continue;
  53.                     forn( i2, 9 ) {
  54.                         forn( j2, 9 ) {
  55.                             forn( k2, 9 ) {
  56.                                 forn( l2, 9 ) {
  57.                                     if( i2 + j2 + k2 + l2 == 0 )
  58.                                         continue;
  59.                                     for( ll a = 1; a <= 4; a ++ ) {
  60.                                         if( a == 1 && i1 == 0 ||
  61.                                             a == 2 && j1 == 0 ||
  62.                                             a == 3 && k1 == 0 ||
  63.                                             a == 4 && l1 == 0 )
  64.                                             continue;
  65.                                         for( ll b = 1; b <= 4; b ++ ) {
  66.                                             if( b == 1 && i1 == 0 ||
  67.                                                 b == 2 && j1 == 0 ||
  68.                                                 b == 3 && k1 == 0 ||
  69.                                                 b == 4 && l1 == 0 )
  70.                                                 continue;
  71.                                             if( a == 1 && b == 1 ) {
  72.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1-1][j1+1][k1][l1][i2][j2][k2][l2][1] );
  73.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2-1][j2+1][k2][l2][0] );
  74.                                             } else
  75.                                             if( a == 1 && b == 2 ) {
  76.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1-1][j1][k1+1][l1][i2][j2][k2][l2][1] );
  77.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2-1][j2][k2+1][l2][0] );
  78.                                             } else
  79.                                             if( a == 1 && b == 3 ) {
  80.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1-1][j1][k1][l1+1][i2][j2][k2][l2][1] );
  81.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2-1][j2][k2][l2+1][0] );
  82.                                             } else
  83.                                             if( a == 1 && b == 4 ) {
  84.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1-1][j1][k1][l1][i2][j2][k2][l2][1] );
  85.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2-1][j2][k2][l2][0] );
  86.                                             } else
  87.                                             if( a == 2 && b == 1 ) {
  88.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1-1][k1+1][l1][i2][j2][k2][l2][1] );
  89.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2-1][k2+1][l2][0] );
  90.                                             } else
  91.                                             if( a == 2 && b == 2 ) {
  92.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1-1][k1][l1+1][i2][j2][k2][l2][1] );
  93.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2-1][k2][l2+1][0] );
  94.                                             } else
  95.                                             if( a == 2 && b == 3 ) {
  96.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1-1][k1][l1][i2][j2][k2][l2][1] );
  97.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2-1][k2][l2][0] );
  98.                                             } else
  99.                                             if( a == 2 && b == 4 ) {
  100.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1+1][j1-1][k1][l1][i2][j2][k2][l2][1] );
  101.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2+1][j2-1][k2][l2][0] );
  102.                                             } else
  103.                                             if( a == 3 && b == 1 ) {
  104.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1][k1-1][l1+1][i2][j2][k2][l2][1] );
  105.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2][k2-1][l2+1][0] );
  106.                                             } else
  107.                                             if( a == 3 && b == 2 ) {
  108.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1][k1-1][l1][i2][j2][k2][l2][1] );
  109.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2][k2-1][l2][0] );
  110.                                             } else
  111.                                             if( a == 3 && b == 3 ) {
  112.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1+1][j1][k1-1][l1][i2][j2][k2][l2][1] );
  113.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2+1][j2][k2-1][l2][0] );
  114.                                             } else
  115.                                             if( a == 3 && b == 4 ) {
  116.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1+1][k1-1][l1][i2][j2][k2][l2][1] );
  117.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2+1][k2-1][l2][0] );
  118.                                             } else
  119.                                             if( a == 4 && b == 1 ) {
  120.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1][k1][l1-1][i2][j2][k2][l2][1] );
  121.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2][k2][l2-1][0] );
  122.                                             } else
  123.                                             if( a == 4 && b == 2 ) {
  124.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1+1][j1][k1][l1-1][i2][j2][k2][l2][1] );
  125.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2+1][j2][k2][l2-1][0] );
  126.                                             } else
  127.                                             if( a == 4 && b == 3 ) {
  128.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1+1][k1][l1-1][i2][j2][k2][l2][1] );
  129.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2+1][k2][l2-1][0] );
  130.                                             } else
  131.                                             if( a == 4 && b == 4 ) {
  132.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][0] = max( dp[i1][j1][k1][l1][i2][j2][k2][l2][0], dp[i1][j1][k1+1][l1-1][i2][j2][k2][l2][1] );
  133.                                                 dp[i1][j1][k1][l1][i2][j2][k2][l2][1] = min( dp[i1][j1][k1][l1][i2][j2][k2][l2][1], dp[i1][j1][k1][l1][i2][j2][k2+1][l2-1][0] );
  134.                                             }
  135.                                         }
  136.                                     }
  137.                                 }
  138.                             }
  139.                         }
  140.                     }
  141.                 }
  142.             }
  143.         }
  144.     }
  145.     ll T;
  146.     cin >> T;
  147.     forn( i, T ) {
  148.         ll f;
  149.         cin >> f;
  150.         vector< ll > cnt1( 5, 0 );
  151.         forn( i, 8 ) {
  152.             ll x;
  153.             cin >> x;
  154.             cnt1[x] ++;
  155.         }
  156.         vector< ll > cnt2( 5, 0 );
  157.         forn( i, 8 ) {
  158.             ll x;
  159.             cin >> x;
  160.             cnt2[x] ++;
  161.         }
  162.         cout << ( dp[cnt1[1]][cnt1[2]][cnt1[3]][cnt1[4]][cnt2[1]][cnt2[2]][cnt2[3]][cnt2[4]][f] ? "Alice" : "Bob" ) << endl;
  163.     }
  164.     return 0;
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement