Cod sursa(job #2555970)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 24 februarie 2020 16:31:38
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("asmax.in");
ofstream out("asmax.out");
int n,c[16005],d[16005],ans,x,y;
vector<int> v[16005];
void dfs(int nod,int t)
{
    d[nod]=c[nod];
    for(auto it:v[nod])
      if(it!=t)
      {
          dfs(it,nod);
          if(d[nod]+d[it]>d[nod]) d[nod]+=d[it];
      }
    ans=max(ans,d[nod]);
}
int main()
{
    in>>n;
    for(int i=1;i<=n;i++) in>>c[i];
    for(int i=1;i<n;i++)
    {
        in>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    ans=-1e9;
    dfs(1,0);
    out<<ans;
    return 0;

}