Pagini recente » Cod sursa (job #2025314) | Cod sursa (job #2837856) | Cod sursa (job #15532) | Cod sursa (job #664037) | Cod sursa (job #831091)
Cod sursa(job #831091)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("asmax.in");
ofstream out("asmax.out");
vector <int> v[16001];
int sum[16001],ver[16001];
int rez;
void dfs(int nod)
{
for(int i=0;i<v[nod].size();i++)
{
if(!sum[v[nod][i]])
dfs(v[nod][i]);
if(sum[v[nod][i]]>0)
rez+=sum[v[nod][i]];
}
sum[nod]+=ver[nod];
}
int main()
{
int n,i,a,b;
in>>n;
for(i=1;i<=n;i++)
in>>ver[i];
for(i=1;i<n;i++)
{
in>>a>>b;
v[a].push_back(b);
//v[b].push_back(a);
}
dfs(1);
out<<rez<<"\n";
}