#include <bits/stdc++.h>
using namespace std;
const long long N= 1e5 + 3 ,big= 1e18 ,mod= 1e9 + 7 ;
vector< long long > a[ N] ;
long long depth[ N] ,parent[ N] [ 18 ] ,dist[ N] [ 18 ] ;
long long n,x,w,y;
void dfs( long long i,long long p)
{
for ( int j= 0 ; j< a[ i] .size ( ) ; j++ )
if ( a[ i] [ j] ! = p)
{
parent[ a[ i] [ j] ] [ 0 ] = i;
depth[ a[ i] [ j] ] = depth[ i] + 1 ;
dist[ a[ i] [ j] ] [ 0 ] = a[ i] [ j] .second ;
dfs( a[ i] [ j] ,i) ;
}
}
int main( )
{
cin >> n;
for ( int i= 0 ; i< n- 1 ; i++ )
{
cin >> x>> y;
a[ x] .push_back ( y) ;
a[ y] .push_back ( x) ;
}
memset ( parent,- 1 ,sizeof ( parent) ) ;
memset ( dist,- 1 ,sizeof ( dist) ) ;
dfs( 1 ,0 ) ;
for ( int j= 0 ; j<= 17 ; j++ )
parent[ 1 ] [ j] = - 1 ;
for ( int j= 1 ; j< 18 ; j++ )
for ( int i= 2 ; i<= n; i++ )
{
parent[ i] [ j] = parent[ parent[ i] [ j- 1 ] ] [ j- 1 ] ;
if ( parent[ i] [ j] >= 1 )
dist[ i] [ j] = dist[ parent[ i] [ j- 1 ] ] [ j- 1 ] + dist[ i] [ j- 1 ] ;
}
for ( int i= 1 ; i<= n; i++ )
cout << parent[ i] [ 0 ] << " " << parent[ i] [ 1 ] << " " << parent[ i] [ 2 ] << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsb25nIGxvbmcgTj0xZTUrMyxiaWc9MWUxOCxtb2Q9MWU5Kzc7Cgp2ZWN0b3I8bG9uZyBsb25nID4gYVtOXTsKbG9uZyBsb25nIGRlcHRoW05dLHBhcmVudFtOXVsxOF0sZGlzdFtOXVsxOF07CmxvbmcgbG9uZyBuLHgsdyx5Owp2b2lkIGRmcyhsb25nIGxvbmcgaSxsb25nIGxvbmcgcCkKewogICAgZm9yKGludCBqPTA7ajxhW2ldLnNpemUoKTtqKyspCiAgICAgICAgaWYoYVtpXVtqXSE9cCkKICAgICAgICB7CiAgICAgICAgICAgIHBhcmVudFthW2ldW2pdXVswXT1pOwogICAgICAgICAgICBkZXB0aFthW2ldW2pdXT1kZXB0aFtpXSsxOwogICAgICAgICAgICBkaXN0W2FbaV1bal1dWzBdPWFbaV1bal0uc2Vjb25kOwogICAgICAgICAgICBkZnMoYVtpXVtqXSxpKTsKICAgICAgICB9Cn0KaW50IG1haW4oKQp7CiAgICBjaW4+Pm47CiAgICBmb3IoaW50IGk9MDtpPG4tMTtpKyspCiAgICB7CiAgICAgICAgY2luPj54Pj55OwogICAgICAgIGFbeF0ucHVzaF9iYWNrKHkpOwogICAgICAgIGFbeV0ucHVzaF9iYWNrKHgpOwogICAgfQogICAgbWVtc2V0KHBhcmVudCwtMSxzaXplb2YocGFyZW50KSk7CiAgICBtZW1zZXQoZGlzdCwtMSxzaXplb2YoZGlzdCkpOwogICAgZGZzKDEsMCk7CiAgICBmb3IoaW50IGo9MDtqPD0xNztqKyspCiAgICAgICAgcGFyZW50WzFdW2pdPS0xOwoKICAgIGZvcihpbnQgaj0xO2o8MTg7aisrKQogICAgICAgIGZvcihpbnQgaT0yO2k8PW47aSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwYXJlbnRbaV1bal09cGFyZW50W3BhcmVudFtpXVtqLTFdXVtqLTFdOwogICAgICAgICAgICAgICAgaWYocGFyZW50W2ldW2pdPj0xKQogICAgICAgICAgICAgICAgZGlzdFtpXVtqXT1kaXN0W3BhcmVudFtpXVtqLTFdXVtqLTFdK2Rpc3RbaV1bai0xXTsKICAgICAgICAgICAgfQpmb3IoaW50IGk9MTtpPD1uO2krKykKCWNvdXQ8PHBhcmVudFtpXVswXTw8IiAiPDxwYXJlbnRbaV1bMV08PCIgIjw8cGFyZW50W2ldWzJdPDxlbmRsOwoKCn0K
compilation info
prog.cpp: In function ‘void dfs(long long int, long long int)’:
prog.cpp:16:38: error: request for member ‘second’ in ‘a[i].std::vector<_Tp, _Alloc>::operator[]<long long int, std::allocator<long long int> >(((std::vector<long long int>::size_type)j))’, which is of non-class type ‘__gnu_cxx::__alloc_traits<std::allocator<long long int> >::value_type {aka long long int}’
dist[a[i][j]][0]=a[i][j].second;
^~~~~~
stdout