Pagini recente » Cod sursa (job #1745818) | Cod sursa (job #2674198) | Cod sursa (job #822170) | Cod sursa (job #1165724) | Cod sursa (job #2544981)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("asmax.in");
ofstream fout ("asmax.out");
const int nmax=16005;
int val[nmax],sum[nmax],maxx;
vector <int> muchii[nmax];
bool viz[nmax];
void dfs(int nod)
{
viz[nod]=true;
for(int i=0;i<muchii[nod].size();i++)
{
int vecin=muchii[nod][i];
if (!viz[vecin])
{
dfs(vecin);
viz[vecin]=true;
sum[nod]=sum[nod]+sum[vecin];
maxx=max(maxx,sum[nod]);
}
}
}
int main()
{
int n,x,y;
fin >> n;
for(int i=1;i<=n;i++)
{
fin >> val[i];
}
for(int i=1;i<=n;i++)
{
fin >> x >> y;
muchii[x].push_back(y);
muchii[y].push_back(x);
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
viz[j]=false;
sum[j]=val[j];
}
dfs(i);
}
fout << maxx;
}