Cod sursa(job #2466021)

Utilizator etienAndrone Stefan etien Data 1 octombrie 2019 11:25:55
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n,i,nod[16001],summax=-1000001;
int a,b;
int lst[16001],urm[16001],l[16001];
int sum(int varf)
{   if(!lst[varf])
        return nod[varf];
    else
    {int s=0,j;
    for(j=lst[varf];j!=0;j=urm[j])
        {if(sum(j)>=0)
            s+=sum(j);
        }
    return s;
    }
}
void f(int vf)
{   int M=sum(vf),j;
    for(j=lst[vf];j!=0;j=urm[j])
    {if(M<sum(j))
        M=sum(j);
    }
    if(summax<M)
        summax=M;
}
int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>nod[i];
    for(i=1; i<=n-1; i++)
    {
        fin>>a>>b;
        l[i]=b;
        urm[i]=lst[a];
        lst[a]=i;
    }
    f(1);
    fout<<summax;
    return 0;
}