func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, x, y, t, l[205], qd[205 + 205], qn[205 + 205], h[205], b1, b2, d1, d2,       ret;   void build(int x, int y) { qd[++t] = y, qn[t] = l[x], l[x] = t; }   void dfs(int x, int y, int *d) {     h[x] = 0;     int mx1 = 0, mx2 = 0;     for (int i = l[x]; i; i = qn[i]) {       if (i == b1 || i == b2 || qd[i] == y) continue;       dfs(qd[i], x, d);       h[x] = max(h[x], h[qd[i]] + 1);       if (h[qd[i]] + 1 >= mx1)         mx2 = mx1, mx1 = h[qd[i]] + 1;       else if (h[qd[i]] + 1 > mx2)         mx2 = h[qd[i]] + 1;     }     *d = max(*d, mx1 + mx2);   }   int main() {     scanf( %d , &n);     t = 1;     for (int i = 1; i < n; i++) scanf( %d%d , &x, &y), build(x, y), build(y, x);     ret = 0;     for (int i = 1; i <= n; i++) {       for (int j = l[i]; j; j = qn[j]) {         b1 = j;         b2 = j ^ 1;         d1 = d2 = 0;         dfs(i, -1, &d1);         dfs(qd[j], -1, &d2);         ret = max(ret, d1 * d2);       }     }     printf( %d n , ret);     return 0;   }   