Cod sursa(job #979296)

Utilizator costin7856Antonesi Florean Costin costin7856 Data 1 august 2013 10:33:18
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#define dim 16009
#define f scanf
#define g printf
#define pb push_back
#include<vector>

using namespace std;


short a[dim][100],n,v[dim],x,y,s[dim],viz[dim];
int dfs(int nod)
{
    int val;
    viz[nod]=1;
    s[nod]=v[nod];
    for(int i=1;i<=a[nod][0];i++)
    if(!viz[a[nod][i]])
    {
        val=dfs(a[nod][i]);
        if(val>0)
        s[nod]=s[nod]+val;
    }
    return s[nod];
}
int main()
{
    freopen("asmax.in","r",stdin);
    freopen("asmax.out","w",stdout);
    f("%d",&n);
    for(int i=1;i<=n;i++)
    f("%d",&v[i]);
    for(int i=1;i<n;i++)
    {
        f("%d%d",&x,&y);
        a[x][++a[x][0]]=y;
        a[y][++a[y][0]]=x;
    }
    dfs(1);
    int max1=s[1];
    max1=0;
    for(int i=1;i<=n;i++)
    if(max1<s[i])
    max1=s[i];
    g("%d",max1);
}