Cod sursa(job #2829838)

Utilizator StefaniaCriStefania Cristea StefaniaCri Data 9 ianuarie 2022 00:34:20
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

#define Nmax 16001
ifstream f("asmax.in");
ofstream g("asmax.out");

vector<int> la[Nmax];
bool visited[Nmax];
int valori[Nmax];
int maxim =-1000;
int dfs(int start)
{
    int cost = valori[start];
    visited[start] = true;
    for(auto vecin:la[start])
    {
        if(!visited[vecin])
        {
             cost = max(cost, cost+dfs(vecin));
        }
    }
    maxim = max(maxim,cost);
    return cost;
}


int main()
{
    int n,x,y;

    f>>n;
    for(int i=1;i<=n;i++)
    {
        f>>valori[i];

    }
    for(int i=1;i<=n;i++)
    {
        f>>x>>y;
        la[x].push_back(y);
        la[y].push_back(x);
    }
    dfs(1);
    g<<maxim;
    return 0;
}