Cod sursa(job #2242085)

Utilizator DavidDragulinDragulin David DavidDragulin Data 17 septembrie 2018 19:06:56
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
vector <int> v[16009];
bool viz[16009];
int n,i,s,smax,cost[16009],x,y,sol[16009];
void dfs(int nod)
{
    int i;
    viz[nod]=1;
    sol[nod]+=cost[nod];
    for(i=0;i<v[nod].size();i++)
    {
        if(viz[v[nod][i]]==0)
        {
            dfs(v[nod][i]);
            if(sol[v[nod][i]]>0)sol[nod]+=sol[v[nod][i]];
        }
    }
}
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>cost[i];
    for(i=1;i<=n;i++)
    {
        fin>>x>>y;
        v[x].pb(y);
        v[y].pb(x);
    }
    smax=INT_MIN;
    dfs(1);
    for(i=1;i<=n;i++)
        smax=max(sol[i],smax);
    fout<<smax;
    return 0;
}