#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll cost[ 1000000 ] ;
void dfs( int node,vector< int > t[ ] ,vector< int > & v,vector< int > & parent,vector< int > & b) {
v[ node] = 1 ;
for ( auto it: t[ node] ) {
if ( v[ it] == 0 ) {
parent[ it] = node;
dfs( it,t,v,parent,b) ;
}
}
ll c= 0 ;
for ( auto child: t[ node] ) {
if ( child! = parent[ node] ) c+ = cost[ child] ;
}
cost[ node] = c+ b[ node] ;
}
int main( ) {
ios_base:: sync_with_stdio ( false ) ;
cin .tie ( NULL ) ;
int n;
cin >> n;
vector< int > t[ n+ 1 ] ;
vector< int > v( n+ 1 ) ,parent( n+ 1 ) ,b( n+ 1 ) ;
for ( int i= 1 ; i<= n; i++ ) cin >> b[ i] ;
for ( int i= 1 ; i< n; i++ ) {
int x,y;
cin >> x>> y;
t[ x] .push_back ( y) ;
t[ y] .push_back ( x) ;
}
dfs( 1 ,t,v,parent,b) ;
for ( int i= 1 ; i<= n; i++ ) {
cout << "Cost of subtree rooted at " << i<< " is " << cost[ i] << "\n " ;
}
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCmxsIGNvc3RbMTAwMDAwMF07Cgp2b2lkIGRmcyhpbnQgbm9kZSx2ZWN0b3I8aW50PnRbXSx2ZWN0b3I8aW50PiZ2LHZlY3RvcjxpbnQ+JnBhcmVudCx2ZWN0b3I8aW50PiZiKXsKICAgIHZbbm9kZV09MTsKICAgIGZvcihhdXRvIGl0OnRbbm9kZV0pewogICAgICAgIGlmKHZbaXRdPT0wKXsKICAgICAgICAgICAgcGFyZW50W2l0XT1ub2RlOwogICAgICAgICAgICBkZnMoaXQsdCx2LHBhcmVudCxiKTsKICAgICAgICB9CiAgICB9CiAgICBsbCBjPTA7CiAgICBmb3IoYXV0byBjaGlsZDp0W25vZGVdKXsKICAgICAgICBpZihjaGlsZCE9cGFyZW50W25vZGVdKWMrPWNvc3RbY2hpbGRdOwogICAgfQogICAgY29zdFtub2RlXT1jK2Jbbm9kZV07Cn0KCmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBpbnQgbjsKICAgIGNpbj4+bjsKICAgIHZlY3RvcjxpbnQ+dFtuKzFdOwogICAgdmVjdG9yPGludD52KG4rMSkscGFyZW50KG4rMSksYihuKzEpOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspY2luPj5iW2ldOwogICAgZm9yKGludCBpPTE7aTxuO2krKyl7CiAgICAgICAgaW50IHgseTsKICAgICAgICBjaW4+Png+Pnk7CiAgICAgICAgdFt4XS5wdXNoX2JhY2soeSk7CiAgICAgICAgdFt5XS5wdXNoX2JhY2soeCk7CiAgICB9CiAgICBkZnMoMSx0LHYscGFyZW50LGIpOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGNvdXQ8PCJDb3N0IG9mIHN1YnRyZWUgcm9vdGVkIGF0ICI8PGk8PCIgaXMgIjw8Y29zdFtpXTw8IlxuIjsKICAgIH0KICAgIHJldHVybiAwOwp9