Pagini recente » Cod sursa (job #1486083) | Cod sursa (job #2161348) | Cod sursa (job #1760134) | Cod sursa (job #3173168) | Cod sursa (job #2830303)
#include <bits/stdc++.h>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
int i, j, n, x, y, valoare[16005], valoare_subgraf_maxima;
vector <int> G[16005];
bool vizitat[16005];
int DFS(int s)
{
vizitat[s]=1;
for (auto i: G[s])
{
if (!vizitat[i])
{
DFS(i);
if (valoare[i]+valoare[s]>valoare[s])
valoare[s]=valoare[s]+valoare[i];
}
}
for (int i=1; i<=n; i++)
if (valoare[i]>valoare_subgraf_maxima)
valoare_subgraf_maxima=valoare[i];
return valoare_subgraf_maxima;
}
int main()
{
f>>n;
for (i=1; i<=n ; i++)
f>>valoare[i];
for (i=1; i<=n; i++)
{
f>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
g<<DFS(1);
return 0;
}