Cod sursa(job #2830749)

Utilizator cosminradu1760Cosmin-Andrei Radu cosminradu1760 Data 10 ianuarie 2022 11:08:15
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

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

int N;
vector<int> V(16001);
vector<int> adj[16001];
vector<int> vizitat(16001);
vector<int> cost(16001);
int x,y,c,cmax;
void dfs(int nod)
{
    vizitat[nod] = 1;
    cost[nod] = V[nod];

    int sz = adj[nod].size();

    for(int i = 0; i < sz; i++)
    {
        if(vizitat[adj[nod][i]] == 0)
        {
            dfs(adj[nod][i]);
            if(cost[adj[nod][i]] > 0)
                cost[nod] += cost[adj[nod][i]];
        }

    }


}

int main()
{
    fin>>N;




    for(int i = 1; i <= N; i++)
    {
        fin>>x;
        V[i] = x;
    }

    for(int i = 1; i <= N; i++)
    {
        fin>>x>>y;
        adj[x].push_back(y);
        adj[y].push_back(x);
    }

    dfs(1);
    cmax = INT_MIN;

    for(int i = 1; i <= N; i++)
    {
        if(cost[i] > cmax)
            cmax = cost[i];
    }

    //cout<<cmax;

    fout<<cmax;

    return 0;
}