Cod sursa(job #2449405)

Utilizator Stefan_PiscuPiscu Stefan Constantin Stefan_Piscu Data 19 august 2019 16:16:15
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <vector>
using namespace std;

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

struct nod{
             int val, maxval;
             vector<int> v;
          }a[16003];

bool visited[16003];

int n;

int dfs(int x)
{
    visited[x]=1;
    for(int i=0;i<a[x].v.size();++i)
        if(!visited[a[x].v[i]])
            a[x].maxval=max(a[x].maxval, a[x].maxval+dfs(a[x].v[i]));
    return a[x].maxval;
}

int main()
{
    fin>>n;
    for(int i=1;i<=n;++i) fin>>a[i].val, a[i].maxval=a[i].val;
    for(int i=1;i<=n;++i)
    {
        int x, y;
        fin>>x>>y;
        a[x].v.push_back(y);
        a[y].v.push_back(x);
    }
    int maxim=dfs(1);
    for(int i=2;i<=n;++i) maxim=max(maxim, a[i].maxval);
    fout<<maxim<<"\n";
    return 0;
}