Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include <vector>#include <algorithm>#include <string>using namespace std;class node{public:int value;vector<int> descendents;char father;vector<int> bestm;node(int v,int M):value(v),father(0),bestm(M,v){};};int main(){int M,N;cin>>N>>M;void cacuAns(node&,int, vector<node>&);vector<node> nodes;int temp;for(int i=0;i!=N;i++){cin>>temp;nodes.push_back(node(temp,M));}int starts,ends,root;for(int i=0;i!=N-1;i++){cin>>starts>>ends;nodes[starts-1].descendents.push_back(ends);nodes[ends-1].father=starts;if(nodes[starts-1].father==0)root=starts;}