Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <algorithm>#include <set>using namespace std;int n, m;const int MAX = 1000000;struct node{int id;int value;node *parent;set<node *> children;};void print(int rid, int **array){cout << "id=" << rid << "\t";for(int i=0; i<n-m+1; ++i){cout << array[rid][i] << "\t";}cout << endl;}void f(node *root, int **array){int rid = root->id;if(root->children.empty()){array[rid][1] = root->value;