Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <cstring>#include <cstdio>#include <vector>using namespace std;const int N = 1e5 + 10;int n, ans;vector<int> adj[N];int dfs(int u, int dep) {int mx1 = dep, mx2 = dep;for (int i = 0, v, temp; i < adj[u].size(); i++) {v = adj[u][i];temp = dfs(v, dep + 1);if (temp > mx1) mx2 = mx1, mx1 = temp;else if (temp > mx2) mx2 = temp;}//printf("%d %d %d\n", mx1, mx2, ans);ans = max(mx1 + mx2 - dep, ans);return mx1;}int main() {//freopen("in.txt", "r", stdin);scanf("%d", &n);for (int i = 1, u, v; i < n; i++) {scanf("%d%d", &u, &v);adj[u].push_back(v);}