Pagini recente » Cod sursa (job #2702038) | Cod sursa (job #245155) | Cod sursa (job #2382587) | Cod sursa (job #610113) | Cod sursa (job #2830726)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int N;
int V[16001];
int matrice[16001][16001];
int vizitat[16001];
int x,y,c,cmax;
void dfs(int nod)
{
vizitat[nod] = 1;
for(int i = 1; i <= N; i++)
{
if(matrice[nod][i] == 1 && vizitat[i] == 0)
{
c += V[i];
dfs(i);
}
}
if(c > cmax)
cmax = c;
}
int main()
{
fin>>N;
for(int i = 1; i <= N; i++)
{
fin>>x;
V[i] = x;
}
for(int i = 1; i <= N - 1; i++)
{
fin>>x>>y;
matrice[x][y] = 1;
matrice[y][x] = 1;
}
for(int i = 1; i <= N; i++)
{
c = V[i];
dfs(i);
if(c > cmax)
cmax = c;
c = INT_MIN;
for(int j = 0 ; j <= N; j++)
{
vizitat[j] = 0;
}
}
fout<<cmax;
return 0;
}