Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <algorithm>#define N 100005#define LL long long#define fi(a, b, c) for(int a = (b); a < (c); a++)#define fd(a, b, c) for(int a = (b); a > (c); a--)#define FI(a, b, c) for(int a = (b); a <= (c); a++)#define FD(a, b, c) for(int a = (b); a >= (c); a--)#define fe(a, b, c) for(int a = (b); a; a = c[a])using namespace std;int t, n, p, s, f[N], v[N + N], o[N + N];LL c[N], dp[N], ans;void bd(int a, int b){v[++p] = b; o[p] = f[a]; f[a] = p;}void dfs(int x, int y){dp[x] = 0;fe(i, f[x], o) if(v[i] != y){dfs(v[i], x);dp[x] = max(dp[x], max(1 + dp[v[i]], c[v[i]]));c[x] += c[v[i]];}}void solve(int tt){p = 0;scanf("%d %d", &n, &s);FI(i, 1, n) f[i] = 0;