Cod sursa(job #1567692)

Utilizator ErikHEErik Henning ErikHE Data 13 ianuarie 2016 17:47:29
Problema Asmax Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

ifstream f("asmax.in");
ofstream g("asmax.out");
int v[16005], n, a[16000], cost[16000], c[1000][1000];

void parc_adancime(int nod)    {
    int i;
    a[nod]=1;
    cost[nod] = v[nod];
    for (i=1;i<=n;i++)
        if (a[i] != 1 && c[nod][i] == 1)    {
            parc_adancime(i);
            if (cost[i] > 0)
                cost[nod] = cost[nod] + cost[i];
        }
}

int main()
{
    int i,j,max1,x,y;
    f>>n;
    for (i=1;i<=n;i++)
        f>>v[i];
    for (i=1;i<=n-1;i++)    {
        f>>x>>y;
        c[x][y] = 1;
        c[y][x] = 1;
    }
    parc_adancime(1);
    max1=cost[1];
    for (i=1;i<=n;i++)
        if (max1<cost[i])
            max1=cost[i];
    g<<max1<<endl;

    return 0;
}