Cod sursa(job #2212028)

Utilizator roberttrutaTruta Robert roberttruta Data 12 iunie 2018 22:05:44
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <vector>
using namespace std;
vector <int> v[16002];
int n,a,b,Max=-200000000,val[16002],k;
bool viz[16002];
void dfs(int start, int parinte)
{
    int i;
    viz[start]=1;
    for(i=0;i<v[start].size();i++)
    {
        k=v[start][i];
        if(!viz[k])
        dfs(k,start);
    }
    if(val[start]>0)
    val[parinte]+=val[start];
}
int main()
{
    ifstream f("asmax.in");
    ofstream g("asmax.out");
 int i;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>a;
        val[i]=a;
    }
    for(i=2;i<=n;i++)
    {
        f>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }

    dfs(1,0);

    for(i=1;i<=n;i++)
        if(val[i]>Max)
        Max=val[i];
    g<<Max;
    return 0;
}