Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #ifdef ONLINE_JUDGE
- #define OJ 1
- #else
- #define OJ 0
- #endif
- #define dd double
- #define ll int
- #define pb push_back
- #define mp make_pair
- #define X first
- #define Y second
- #define forn( i, n ) for( ll i = 0; i < (ll) (n); i ++ )
- #define endl '\n'
- #define TIMESTAMP fprintf(stderr, "Execution time: %.3lf s.\n", (double)clock()/CLOCKS_PER_SEC)
- struct __s { __s() {
- //srand( time( NULL ) );
- //freopen( "input.txt", "r", stdin ); freopen( "output.txt", "w", stdout );
- if( OJ ) { ios_base::Init i; cin.sync_with_stdio( 0 ); cin.tie( 0 ); }
- } ~__s() {
- if( !OJ ) TIMESTAMP;
- ll n; cin >> n;
- }
- } __S;
- bool dp[10][10][10][10][10][10][10][10][2];
- int main( void ) {
- forn( i, 9 ) {
- forn( j, 9 ) {
- forn( k, 9 ) {
- forn( l, 9 ) {
- dp[0][0][0][0][i][j][k][l][0] = true;
- dp[0][0][0][0][i][j][k][l][1] = true;
- dp[i][j][k][l][0][0][0][0][0] = false;
- dp[i][j][k][l][0][0][0][0][1] = false;
- }
- }
- }
- }
- forn( i1, 9 ) {
- forn( j1, 9 ) {
- forn( k1, 9 ) {
- forn( l1, 9 ) {
- if( i1 + j1 + k1 + l1 == 0 )
- continue;
- forn( i2, 9 ) {
- forn( j2, 9 ) {
- forn( k2, 9 ) {
- forn( l2, 9 ) {
- if( i2 + j2 + k2 + l2 == 0 )
- continue;
- for( ll a = 1; a <= 4; a ++ ) {
- if( a == 1 && i1 == 0 ||
- a == 2 && j1 == 0 ||
- a == 3 && k1 == 0 ||
- a == 4 && l1 == 0 )
- continue;
- for( ll b = 1; b <= 4; b ++ ) {
- if( b == 1 && i1 == 0 ||
- b == 2 && j1 == 0 ||
- b == 3 && k1 == 0 ||
- b == 4 && l1 == 0 )
- continue;
- if( a == 1 && b == 1 ) {
- 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] );
- 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] );
- } else
- if( a == 1 && b == 2 ) {
- 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] );
- 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] );
- } else
- if( a == 1 && b == 3 ) {
- 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] );
- 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] );
- } else
- if( a == 1 && b == 4 ) {
- 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] );
- 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] );
- } else
- if( a == 2 && b == 1 ) {
- 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] );
- 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] );
- } else
- if( a == 2 && b == 2 ) {
- 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] );
- 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] );
- } else
- if( a == 2 && b == 3 ) {
- 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] );
- 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] );
- } else
- if( a == 2 && b == 4 ) {
- 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] );
- 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] );
- } else
- if( a == 3 && b == 1 ) {
- 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] );
- 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] );
- } else
- if( a == 3 && b == 2 ) {
- 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] );
- 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] );
- } else
- if( a == 3 && b == 3 ) {
- 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] );
- 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] );
- } else
- if( a == 3 && b == 4 ) {
- 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] );
- 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] );
- } else
- if( a == 4 && b == 1 ) {
- 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] );
- 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] );
- } else
- if( a == 4 && b == 2 ) {
- 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] );
- 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] );
- } else
- if( a == 4 && b == 3 ) {
- 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] );
- 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] );
- } else
- if( a == 4 && b == 4 ) {
- 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] );
- 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] );
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- ll T;
- cin >> T;
- forn( i, T ) {
- ll f;
- cin >> f;
- vector< ll > cnt1( 5, 0 );
- forn( i, 8 ) {
- ll x;
- cin >> x;
- cnt1[x] ++;
- }
- vector< ll > cnt2( 5, 0 );
- forn( i, 8 ) {
- ll x;
- cin >> x;
- cnt2[x] ++;
- }
- cout << ( dp[cnt1[1]][cnt1[2]][cnt1[3]][cnt1[4]][cnt2[1]][cnt2[2]][cnt2[3]][cnt2[4]][f] ? "Alice" : "Bob" ) << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement