Pagini recente » Cod sursa (job #1083909) | Cod sursa (job #2661275) | Cod sursa (job #577972) | Cod sursa (job #900084) | Cod sursa (job #2518372)
#include <fstream>
#include <iostream>
#define N 16002
#include <vector>
#include <deque>
#define INF 2000000000
using namespace std;
int c[N],sum[N],ma=-INF;
vector <int> graph[N];
bool viz[N];
void solve(int nod)
{
int ve;
viz[nod]=1;
for(int i=0;i<graph[nod].size();++i)
{
ve=graph[nod][i];
if(!viz[ve])
{
solve(ve);
viz[ve]=1;
sum[nod]=sum[nod]+sum[ve];
ma=max(ma,sum[nod]);
}
}
}
int main()
{
ifstream f("asmax.in");
ofstream g("asmax.out");
int n,x,y;
f>>n;
for(int i=1;i<=n;++i) f>>c[i],ma=max(ma,c[i]);
for(int i=1;i<=n;++i)
{
f>>x>>y;
graph[x].push_back(y);
graph[y].push_back(x);
}
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
viz[j]=0,sum[j]=c[j];
solve(i);
}
g<<ma;
f.close();
g.close();
return 0;
}