Cod sursa(job #2256944)

Utilizator vladcoroian2001Vlad Coroian vladcoroian2001 Data 9 octombrie 2018 13:49:34
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <vector>

using namespace std;
ifstream fi("asmax.in");
ofstream fo("asmax.out");
const int NMAX=16005;
int n,mx,s[NMAX],val[NMAX],VIZ[NMAX],x,y;
vector <int> V[NMAX];
void dfs(int x)
{
    s[x]=val[x];
    VIZ[x]=1;
    for(auto y: V[x])
        if(!VIZ[y])
        {
            VIZ[y]=1;
            dfs(y);
            if(s[y]>0)
                s[x]+=s[y];
        }
}
int main()
{
    fi>>n;
    for(int i=1;i<=n;i++)
        fi>>val[i];
    for(int i=1;i<n;i++)
    {
        fi>>x>>y;
        V[x].push_back(y);
        V[y].push_back(x);
    }
    dfs(1);
    mx=s[1];
    for(int i=1;i<=n;i++)
        if(mx<s[i])
            mx=s[i];
    fo<<mx<<"\n";
    fi.close();
    fo.close();
    return 0;
}