func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MaxN = 1e3 + 100;   const int LogN = 20;   long long Inf = 1e9 + 100;   const int dx[4] = {0, 1, 0, -1};   const int dy[4] = {1, 0, -1, 0};   const double eps = 1e-9;   int md = 2520;   struct el {     int v, u, c;   };   vector<el> Ans;   vector<int> Gr[MaxN];   int Sz[MaxN];   int Ct = -1;   int N;   int Next = 1;   int Add = 1;   int find(int v, int p = -1, int c = 0) {     int Mx = 0;     int Sum = 1;     for (int to : Gr[v]) {       if (to == p) continue;       int k = find(to, v, c + 1);       Sum += k;       if (Ct != -1) return Sum;       Sz[to] = k;       Mx = ((Mx) > (Sz[to]) ? (Mx) : (Sz[to]));     }     Mx = ((Mx) > (N - Sum) ? (Mx) : (N - Sum));     if (Mx <= N / 2 && Ct == -1) {       Ct = v;       Sz[p] = N - Sum;     }     return Sum;   }   void dfs(int v, int k, int p = -1) {     for (int to : Gr[v]) {       if (p == to) continue;       Ans.push_back({v, to, Next - k});       Next += Add;       dfs(to, Next - Add, v);     }   }   int main() {     ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);     cout << fixed << setprecision(5);     cin >> N;     for (int i = 0; i < N - 1; i++) {       int a, b;       cin >> a >> b;       a--;       b--;       Gr[a].push_back(b);       Gr[b].push_back(a);     }     find(0);     vector<pair<int, int> > Mt;     for (int to : Gr[Ct]) {       Mt.push_back({Sz[to], to});     }     sort(Mt.begin(), Mt.end());     vector<pair<int, int> > At;     int k = 0;     while (k < (N - 1) / 3 + ((N - 1) % 3 != 0)) {       At.push_back(Mt.back());       Mt.pop_back();       k += At.back().first;     }     for (pair<int, int> a : At) {       Ans.push_back({Ct, a.second, Next});       Next += Add;       dfs(a.second, Next - Add, Ct);     }     Add = (k + 1);     Next = k + 1;     for (pair<int, int> a : Mt) {       Ans.push_back({Ct, a.second, Next});       Next += Add;       dfs(a.second, Next - Add, Ct);     }     for (el a : Ans) {       cout << a.v + 1 <<     << a.u + 1 <<     << a.c <<   n ;     }     return 0;   }   