Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>using namespace std;const int maxn = 10005;const int inf = 2e9;struct Node{vector<int> child;}tree[maxn];int n,p[maxn],q[maxn];int pt[maxn],qt[maxn];bool cmp(int a,int b){return qt[a] > qt[b];}void dfs(int u,int fa){int Wallet = inf;int minWallet = inf;vector<int> V = tree[u].child;for(int i = 0; i < V.size(); i++){int v = V[i];if(v == fa) continue;dfs(v,u);