func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAX_N = 1e5 + 100;   vector<int> v[MAX_N];   int dp[MAX_N], ans, deep[MAX_N];   void dfs(int x, int fa, int dep) {     int i;     deep[x] = dep;     for (i = 0; i < v[x].size(); i++) {       int y = v[x][i];       if (y == fa) continue;       dfs(y, x, dep + 1);     }   }   void dfs(int x, int fa) {     int i;     dp[x] = 0;     for (i = 0; i < v[x].size(); i++) {       int y = v[x][i];       if (y == fa) continue;       dfs(y, x);       ans = max(ans, dp[x] + dp[y] + 1);       dp[x] = max(dp[x], dp[y] + 1);     }   }   int main(void) {     int T, n, a, b, da, db, i, x, y;     cin >> T;     while (T--) {       scanf( %d%d%d%d%d , &n, &a, &b, &da, &db);       for (i = 1; i <= n; i++) v[i].clear();       for (i = 1; i < n; i++) {         scanf( %d%d , &x, &y);         v[x].push_back(y);         v[y].push_back(x);       }       dfs(a, -1, 0);       if (deep[b] <= da) {         puts( Alice );         continue;       }       if (da * 2 >= db) {         puts( Alice );         continue;       }       ans = 0;       dfs(1, -1);       if (da * 2 >= ans)         puts( Alice );       else         puts( Bob );     }     return 0;   }   