Cod sursa(job #979298)

Utilizator costin7856Antonesi Florean Costin costin7856 Data 1 august 2013 10:35:59
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
#define dim 16009
#define f scanf
#define g printf
using namespace std;
int 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);
}