#include typedef long long ll; using namespace std; const int N=1003; struct P { ll x; ll y; int IT; }; int S[N]; vector G[N]; vector

pd[N]; vector> res; int calc_size(int v,int oj); bool cmp1(P a, P b); bool cmp2(P a, P b); void calc_edges(int v,int oj,int oj_IT); int main() { int n; scanf("%d",&n); for(int i=1;i1) sort(pd[v].begin()+1,pd[v].end(),cmp2); for(int i=1;i<(int)pd[v].size();i++) pd[v][i].x+=pd[v][0].x, pd[v][i].y+=pd[v][0].y; if(oj_IT!=-1) res.push_back(make_pair(pd[v][0].IT,oj_IT)); int l=1; for(auto z : G[v]) { if(z==oj) continue; while(S[z]>0) { pd[z].push_back(pd[v][l]); l++; S[z]--; } calc_edges(z,v,pd[v][0].IT); } } //////// bool cmp1(P a,P b) { return make_pair(a.x,a.y)0; }