Cod sursa(job #2184298)

Utilizator alexkosaAlex Kosa alexkosa Data 23 martie 2018 22:01:31
Problema Asmax Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <vector>
#include <climits>

using namespace std;

ifstream fin("asmax.in");
ofstream fout("asmax.out");

int n,val[16003],viz[16003],smax=INT_MIN;
vector<int>v[16003];

void dfs(int nod)
{
    viz[nod]=1;
    for(vector<int> :: iterator it=v[nod].begin();it!=v[nod].end();it++)
    {
        if(viz[*it]==0)
        {
            if(val[*it]>0)
                val[nod]=val[nod]+val[*it];
            dfs(*it);
        }
    }
}

int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>val[i];
    for(int i=1;i<n;i++)
    {
        int x,y;
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    for(int i=1;i<=n;i++)
    {
        if(viz[i]==0)
        {
            dfs(i);
        }
    }
    for(int i=1;i<=n;i++)
        if(smax<val[i])
            smax=val[i];
    fout<<smax;
}