Pagini recente » Cod sursa (job #2961900) | Cod sursa (job #376065) | Cod sursa (job #2528205) | Cod sursa (job #46057) | Cod sursa (job #2835550)
#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 maxx = INT_MIN;
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;
}
if (sum > maxx)
maxx = sum;
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);
}
int garb = dfs(1);
fout << maxx;
return 0;
}