Pagini recente » Cod sursa (job #1594631) | Cod sursa (job #1957968) | Cod sursa (job #488171) | Cod sursa (job #2178138) | Cod sursa (job #570942)
Cod sursa(job #570942)
#include <iostream>
#include <fstream>
#include <vector>
#include <bitset>
#define MAXN 16001
using namespace std;
vector <short int> g[MAXN];
bool viz[MAXN];
int bsum[MAXN];
short int n;
void df(int n){
viz[n]=true;
for (int i=0;i<g[n].size();i++)
if (!viz[g[n][i]]){
df(g[n][i]);
if (bsum[g[n][i]] >0)bsum[n]+=bsum[g[n][i]];
}
}
int main ()
{
fstream fin ("asmax.in", ios::in);
fin >>n;
for (int i=1;i<=n;i++)fin>>bsum[i];
int x,y;
while (fin>>x>>y){
g[x].push_back(y);
g[y].push_back(x);
}
fin.close();
for (int i=1; i<=n; i++)viz[i]=false;
df(1);
int max = bsum[1];
for (int i=1;i<=n;i++)if (bsum[i]>max)max = bsum[i];
fstream fout("asmax.out", ios::out);
fout<<max;
fout.close();
return 0;
}