#include #include #include #include #include #include #include #include #include #include #include #include #include #pragma warning(disable:4996) typedef long long ll; #define MIN(a, b) ((a)>(b)? (b): (a)) #define MAX(a, b) ((a)<(b)? (b): (a)) #define LINF 9223300000000000000 #define INF 2140000000 const long long MOD = 1000000007; using namespace std; vector > > g; ll ans; void dfs(int par, int curr, ll val[2]) // val[0]:num val[1]:sum of dist { int siz=(int)g[curr].size(); vector val0(2*siz); int i; for(i=0; i