Cod sursa(job #2830742)

Utilizator cosminradu1760Cosmin-Andrei Radu cosminradu1760 Data 10 ianuarie 2022 10:55:51
Problema Asmax Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

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

int N;
int V[16001];
int matrice[16001][16001];
int vizitat[16001];
int cost[16001];
int x,y,c,cmax;
void dfs(int nod)
{
    vizitat[nod] = 1;
    cost[nod] = V[nod];
    for(int i = 1; i <= N; i++)
    {
        if(matrice[nod][i] == 1 && vizitat[i] == 0)
        {
            dfs(i);
            if(cost[i] > 0)
                cost[nod] += cost[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;

        matrice[x][y] = 1;
        matrice[y][x] = 1;
    }

    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;
}