Cod sursa(job #1008797)

Utilizator ShaDoWsiD100Rzv Rzv ShaDoWsiD100 Data 11 octombrie 2013 20:55:08
Problema Asmax Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#include<vector>
using namespace std;
FILE *f=fopen("asmax.in","r"),*g=fopen("asmax.out","w");
vector <int > v[16001];
int n,best[16001],viz[16001],i,nod[16001],sol=(1<<31)-2,x,y;
void df(int k)
{
    viz[k]=1;
    best[k]=nod[k];
    for(int i=0;i<v[k].size();i++)
        if(viz[v[k][i]]==0){
            df(v[k][i]);
            if(best[v[k][i]]>0)
                best[k]+=best[v[k][i]];
        }
}
int main()
{
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&nod[i]);
    for(i=1;i<=n;i++)
    {
        fscanf(f,"%d%d",&x,&y);
        v[x].push_back(y);
        v[y].push_back(x);
    }
    df(1);
    fprintf(g,"%d",best[1]);
    return 0;
}