执行用时:9ms
内存消耗:9.75MB
击败了100.00%的用户
击败了95.80%的用户
#include <cstdio>
const int N = 100005, M = 200005;
int head[N], nxt[M], to[M], idx;
inline void add(int u, int v) {
to[++idx] = v;
nxt[idx] = head[u];
head[u] = idx;
}
inline int read() {
int x = 0;
char c = getchar();
while (c < '0' || c > '9') c = getchar();
while (c >= '0' && c <= '9') {
x = x * 10 + (c - '0');
c = getchar();
}
return x;
}
void dfs(int u, int fa, int d, int &far, int &maxd) {
if (d > maxd) {
maxd = d;
far = u;
}
for (int e = head[u]; e; e = nxt[e]) {
int v = to[e];
if (v == fa) continue;
dfs(v, u, d + 1, far, maxd);
}
}
int main() {
int n = read();
for (int i = 1; i < n; i++) {
int u = read(), v = read();
add(u, v);
add(v, u);
}
}