Cod sursa(job #1036278)

Utilizator ade_tomi27Enache Adelina ade_tomi27 Data 19 noiembrie 2013 09:35:52
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb

#include<stdio.h>
#include<vector>
using namespace std;
vector<int > a[16004];
int n,i,sum[16004],viz[16004],s,maxim;
void parc(int k)
{
    viz[k]=1;
    for(int i=0;i<a[k].size();i++)
    {
        if(viz[a[k][i]]==0)
        {
            parc(a[k][i]);
            if(sum[a[k][i]]>0)
               sum[k]+=sum[a[k][i]];
        }
    }
    if(sum[k]>maxim)
            maxim=sum[k];
}
char c;
int main()
{
    int x,y,x1,y1;
    freopen("asmax.in","r",stdin);
    freopen("asmax.out","w",stdout);
    scanf("%d%d",&n);
    maxim=-1000;
    for(i=1;i<=n;i++){
        scanf("%d",&sum[i]);
        if(sum[i]>maxim)
            maxim=sum[i];
    }

    c=2;
    x1=y1=-1;
    while(scanf("%d%d%c",&x,&y,&c)!=EOF)
    {

        a[x].push_back(y);
        a[y].push_back(x);
    }
    parc(1);
    printf("%d",maxim);
    return 0;
}