MSBOP 2015 Round3 register

Ended

Participants:978

Verdict:AC | AC
Submitted:2015-05-09 15:11:31

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#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;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX