Pagini recente » Cod sursa (job #2599381) | Cod sursa (job #2329406) | Cod sursa (job #625588) | Cod sursa (job #2571310) | Cod sursa (job #2033021)
#include <bits/stdc++.h>
using namespace std;
ifstream in("asmax.in");
ofstream out("asmax.out");
int cost[10009],n,maxim=-(1 << 30 ), sum;
vector < int > v[10000];
bitset < 10009 > viz;
void read()
{
in >> n;
for ( int i=1; i<=n; i++)
in >> cost[i], maxim = max(maxim,cost[i]);
int a,b;
for(int i=1; i<n; i++)
{
in >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
}
void dfs( int nod )
{
viz[nod] = 1;
for( int i=0; i<v[nod].size(); i++)
if ( !viz[v[nod][i]]) sum += cost[ v[nod][i]] , dfs(v[nod][i]);
}
int main()
{
read();
dfs(1);
out << sum;
return 0;
}