Pagini recente » Cod sursa (job #785960) | Cod sursa (job #1274503) | Cod sursa (job #1282954) | Cod sursa (job #759858) | Cod sursa (job #1307754)
#include <fstream>
#include <bitset>
#include <queue>
#define lmax 16005
#define pb push_back
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
bitset <lmax>ap;
int n,m,x,y,maxi;
int ma[lmax];
queue <int>q;
vector <int>v[lmax];
inline void df(int nod)
{
vector <int>::iterator it;
ap[nod]=1;
for (it=v[nod].begin();it!=v[nod].end();it++)
if (!ap[*it])
{
df(*it);
if (ma[*it]>0)
ma[nod]+=ma[*it];
}
}
int main()
{
f>>n;
for (int i=1;i<=n;i++)
f>>ma[i];
for (int i=1;i<=n-1;i++)
{
f>>x>>y;
v[x].pb(y);
v[y].pb(x);
}
df(1);
for (int i=1;i<=n;i++)
if (ma[i]>maxi)
maxi=ma[i];
g<<maxi;
f.close();
g.close();
}