Cod sursa(job #2539496)

Utilizator Alex100Alexandru Mihai Alex100 Data 5 februarie 2020 21:51:38
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
#define MAX 17000
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
vector <int>g[MAX];
int d[MAX],s[MAX];
bool uz[MAX];
void rd();
void dfs(int node);
int n,maxim=-999999999;
int main()
{
    int i;
    rd();
    uz[1]=1;
    dfs(1);
    for(i=1;i<=n;i++)
        if(s[i]>maxim)
            maxim=s[i];
    fout<<maxim;
    return 0;
}
void rd()
{
    int i,x,y;
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>d[i];
    for(i=1; i<n; i++)
    {
        fin>>x>>y;
        g[x].push_back(y);
        g[y].push_back(x);
    }

}
void dfs(int node)
{
    int i;
    s[node]=d[node];
    for(i=0; i<g[node].size(); i++)
        if(!uz[g[node][i]])
        {
            uz[g[node][i]]=1;
            dfs(g[node][i]);
            s[node]=max(s[node],s[node]+s[g[node][i]]);
        }
}