Cod sursa(job #3311774)

Utilizator mihaigeorgescuGeorgescu Mihai mihaigeorgescu Data 24 septembrie 2025 10:30:48
Problema Asmax Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream fcin("asmax.in");
ofstream fout("asmax.out");
int n,val[20000],a,b,in[20000],nr,u[20000],rez=-(1<<30),s;
vector <int> v[20000];
inline void dfs(int nod, int p)
{
    u[++nr]=val[nod];
    for(int i : v[nod]) if(i!=p)
        dfs(i,nod);
}
signed main()
{
    fcin>>n;
    for(int i=1; i<=n; i++)
        fcin>>val[i];
    for(int i=1; i<n; i++)
    {
        fcin>>a>>b;
        v[a].emplace_back(b);
        v[b].emplace_back(a);
    }
    dfs(1,-1);
    for(int i=1; i<=n; i++)
    {
        if(rez<0) s=0;
        s+=u[i];
        rez=max(rez,s);
    }
    fout<<rez;
    return 0;
}