Pagini recente » Cod sursa (job #2146222) | Cod sursa (job #388176) | Cod sursa (job #979415) | Cod sursa (job #1695424) | Cod sursa (job #2835541)
#include <bits/stdc++.h>
using namespace std;
// ifstream fin("cod.in");
// ofstream fout("cod.out");
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int nr_noduri, nr_muchii, start;
int visited[20000], val[20000];
vector<vector<int>> graf;
int dfs(int nod)
{
if (visited[nod])
return 0;
visited[nod] = 1;
int sum = val[nod];
int temp;
for (int next : graf[nod])
{
temp = dfs(next);
if (temp > 0)
sum += temp;
}
return sum;
}
int main()
{
fin >> nr_noduri;
graf.resize(nr_noduri + 1);
for (int i = 1; i <= nr_noduri; i++)
fin >> val[i];
int n1, n2;
while (fin >> n1 >> n2)
{
graf[n1].push_back(n2);
graf[n2].push_back(n1);
}
fout << dfs(1);
return 0;
}