func_code_string: #include <bits/stdc++.h>   using namespace std;   using namespace std::chrono;   long long mod = 1000000007;   void __print(int x) { cerr << x; }   void __print(long x) { cerr << x; }   void __print(long long x) { cerr << x; }   void __print(unsigned x) { cerr << x; }   void __print(unsigned long x) { cerr << x; }   void __print(unsigned long long x) { cerr << x; }   void __print(float x) { cerr << x; }   void __print(double x) { cerr << x; }   void __print(long double x) { cerr << x; }   void __print(char x) { cerr <<      << x <<     ; }   void __print(const char *x) { cerr <<     << x <<    ; }   void __print(const string &x) { cerr <<     << x <<    ; }   void __print(bool x) { cerr << (x ?  true  :  false ); }   template <typename T, typename V>   void __print(const pair<T, V> &x) {     cerr <<  { ;     __print(x.first);     cerr <<  , ;     __print(x.second);     cerr <<  } ;   }   template <typename T>   void __print(const T &x) {     int f = 0;     cerr <<  { ;     for (auto &i : x) cerr << (f++ ?  ,  :   ), __print(i);     cerr <<  } ;   }   void _print() { cerr <<  ] n ; }   template <typename T, typename... V>   void _print(T t, V... v) {     __print(t);     if (sizeof...(v)) cerr <<  ,  ;     _print(v...);   }   void init() {}   void solve() {     long long x, y, n, i, j;     cin >> n;     vector<pair<long long, long long> > adj(n - 1);     vector<long long> deg(n + 1, 0);     for (i = 0; i < n - 1; i++) {       cin >> x >> y;       deg[x]++;       deg[y]++;       adj[i] = {x, y};     }     vector<long long> edge;     for (i = 0; i < n + 1; i++) {       if (deg[i] == 1) {         edge.push_back(i);       }     }     if ((int)edge.size() == 2) {       for (i = 0; i < n - 1; i++) {         cout << i << endl;       }     } else {       long long ep = 0, elp = 3;       for (i = 0; i < n - 1; i++) {         bool flag = false;         for (j = 0; j < 3; j++) {           if (edge[j] == adj[i].first or edge[j] == adj[i].second) {             flag = true;           }         }         if (flag) {           cout << ep << endl;           ep++;         } else {           cout << elp << endl;           elp++;         }       }     }   }   int main() {     init();     auto start = high_resolution_clock::now();     int T = 1;     while (T--) {       solve();     }     auto stop = high_resolution_clock::now();     auto duration = duration_cast<milliseconds>(stop - start);   }   