func_code_string: #include <bits/stdc++.h>   using namespace std;   std::vector<int> v[100005];   int dist[100005];   void dfs(int s, int par) {     if (par != -1) dist[s] = dist[par] + 1;     for (int i = 0; i < v[s].size(); i++) {       if (par != v[s][i]) dfs(v[s][i], s);     }   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     long long t = 1, xx, x = 0, y = 0, cc, m, k, n;     cin >> t;     while (t--) {       int a, b, da, db;       cin >> n >> a >> b >> da >> db;       for (int i = 1; i < n; i++) {         cin >> x >> y;         v[x].push_back(y);         v[y].push_back(x);         dist[i] = 0;       }       dist[n] = 0;       dfs(a, -1);       int ab = dist[b];       int farest, mx = -1;       for (int i = 1; i < n + 1; i++) {         if (mx < dist[i]) {           mx = dist[i];           farest = i;         }       }       for (int i = 1; i < n + 1; i++) dist[i] = 0;       dfs(farest, -1);       int diameter = -1;       for (int i = 1; i < n + 1; i++) diameter = max(diameter, dist[i]);       if (ab <= da || 2 * da >= diameter || 2 * da >= db)         cout <<  Alice  << endl;       else         cout <<  Bob  << endl;       for (int i = 1; i < n + 1; i++) v[i].clear();     }     return 0;   }   