Cod sursa(job #2833864)

Utilizator Teodor_AxinteAxinte Teodor-Ionut Teodor_Axinte Data 15 ianuarie 2022 20:10:22
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

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

const int N = 16010;

int x, y, n, ans;
int cost[N], suma[N];
vector<int> adj[N], viz(N, 0);

void dfs(int nod)
{
    viz[nod] = 1;
    suma[nod] = cost[nod];

    for (auto it : adj[nod])
        if (!viz[it])
        {
            dfs(it);
            if (suma[nod] + suma[it] > suma[nod])
                suma[nod] = suma[nod] + suma[it];
        }
}
int main()
{
    fin >> n;
    for (int i = 1; i <= n; i++)
        fin >> cost[i];
    for (int i = 1; i <= n; i++)
    {
        fin >> x >> y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }

    dfs(1);

    for (int i = 1; i <= n; i++)
        if (suma[i] > ans)
            ans = suma[i];
    fout << ans;
}