#include using namespace std; #define pb push_back #define mp make_pair #define ALL(x) (x).begin(),(x).end() typedef long long ll; typedef unsigned long long ull; typedef pair pii; const int maxn = 1e4 + 70; const int INF = 0x3f3f3f3f; const ll inf = 0x3f3f3f3f3f3f3f3f; const int MOD = 1e9 + 7; const double eps = 1e-7; const double PI = acos(-1.0); //win: 1; lose: -1; tie: 0; vector G2[maxn]; int odeg[maxn], cnt[maxn], dp[maxn], nxt[maxn]; void topo(){ memset(cnt, 0, sizeof(cnt)); memset(dp, 0, sizeof(dp)); queue Q; for (int i = 1; i < maxn; i++){ if (odeg[i] == 0){ dp[i] = -1; Q.push(i); } } while (!Q.empty()){ int u = Q.front(); Q.pop(); if (dp[u] == -1){ for (int i = 0; i < G2[u].size(); i++){ int v = G2[u][i]; if (!dp[v]){ nxt[v] = u; dp[v] = 1; Q.push(v); } } } else{ for (int i = 0; i < G2[u].size(); i++){ int v = G2[u][i]; if (!dp[v]){ cnt[v]++; if (cnt[v] == odeg[v]){ nxt[v] = u; dp[v] = -1; Q.push(v); } } } } } } void init(){ for(int x1 = 1; x1 <= 9; x1++) for(int x2 = x1; x2 <= 9; x2++) for(int y1 = 1; y1 <= 9; y1++) for(int y2 = y1; y2 <= 9; y2++){ int u = x1 + x2*10 + y1*100 + y2*1000; int v, _x1, _x2, _y1, _y2; set S; _x1 = y1, _x2 = y2, _y1 = (x1 + x2) % 10, _y2 = x2; if(_y1 > _y2) swap(_y1, _y2); v = _x1 + _x2*10 + _y1*100 + _y2*1000; S.insert(v); _x1 = y1, _x2 = y2, _y1 = (x1 + y1) % 10, _y2 = x2; if(_y1 > _y2) swap(_y1, _y2); v = _x1 + _x2*10 + _y1*100 + _y2*1000; S.insert(v); _x1 = y1, _x2 = y2, _y1 = (x1 + y2) % 10, _y2 = x2; if(_y1 > _y2) swap(_y1, _y2); v = _x1 + _x2*10 + _y1*100 + _y2*1000; S.insert(v); _x1 = y1, _x2 = y2, _y1 = (x2 + x1) % 10, _y2 = x1; if(_y1 > _y2) swap(_y1, _y2); v = _x1 + _x2*10 + _y1*100 + _y2*1000; S.insert(v); _x1 = y1, _x2 = y2, _y1 = (x2 + y1) % 10, _y2 = x1; if(_y1 > _y2) swap(_y1, _y2); v = _x1 + _x2*10 + _y1*100 + _y2*1000; S.insert(v); _x1 = y1, _x2 = y2, _y1 = (x2 + y2) % 10, _y2 = x1; if(_y1 > _y2) swap(_y1, _y2); v = _x1 + _x2*10 + _y1*100 + _y2*1000; S.insert(v); for(auto& v : S){ G2[v].push_back(u); odeg[u]++; } } } int main(){ //freopen("in.txt", "r", stdin); init(); topo(); /* for(int x1 = 1; x1 <= 9; x1++) for(int x2 = x1; x2 <= 9; x2++) for(int y1 = 1; y1 <= 9; y1++) for(int y2 = y1; y2 <= 9; y2++){ int u = x1 + x2*10 + y1*100 + y2*1000; cout << x1 << " " << x2 << " " << y1 << " " << y2 << ": " << dp[u] << endl; } */ int T; cin >> T; while(T--){ int x1, x2, y1, y2; scanf("%d %d %d %d", &x1, &x2, &y1, &y2); if(x1 > x2) swap(x1, x2); if(y1 > y2) swap(y1, y2); int u = x1 + x2*10 + y1*100 + y2*1000; if(dp[u] == 1) printf("Alice\n"); else if(dp[u] == -1) printf("Bob\n"); else printf("Tie\n"); } return 0; }