#include using namespace std; int dp[10000];//[2]; int get_num(int a[4]) { return a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3]; } void get_nums(int num , int a[4]) { a[0] = num/1000; a[1] = (num %1000)/100; a[2] = (num%100)/10; a[3] =(num%10); } void init(){ int a[4]; for(int i = 0; i < 10000; i++) dp[i] = -1; //queue q; //while(!q.empty()) // q.pop(); for(int i = 0; i < 10000; i++) { get_nums(i, a); if ((a[2]==0 && a[3] != 0) || (a[2]!=0 && a[3] == 0)) { dp[i] = 0; // q.push(i); } } bool update = true; while(update){ update = false; for(int i = 0; i < 10000; i++) if (dp[i] == -1) { get_nums(i, a); int result[6]; int result_count = 0; for(int x = 0; x <2; x ++) { for(int y=0;y < 4;y++) if (x!=y){ int b[4] = {a[2], a[3], a[0], a[1]}; b[x + 2] = a[x] + a[y]; if (b[x + 2] >= 10) b[x + 2] -= 10; int num = get_num(b); result[result_count++] = dp[num]; } } for(int j=0;j<6;j++) if(result[j] == 0) { dp[i] = 2; update = true; break; } if (dp[i] == -1) { int num_2 = 0; for(int j=0;j<6;j++) if(result[j] == 2) num_2 ++; if (num_2 == 6){ dp[i] = 0; update = true; } } } } } int main() { init(); int T; cin>>T; while(T--) { int a[4]; cin>> a[0]>>a[1]>>a[2]>>a[3]; int num = get_num(a); if(dp[num] == 2) printf("Alice\n"); else if (dp[num] == 0) printf("Bob\n"); else printf("Tie\n"); } return 0; }