Cod sursa(job #2672590)

Utilizator razvanradulescuRadulescu Razvan razvanradulescu Data 14 noiembrie 2020 11:26:16
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream f("asmax.in");
ofstream g("asmax.out");

struct node
{
    int val;
    vector<int> con;
} graf[16005];
int n, maxim = -2000000000;
bool viz[16005];

void read()
{
    f>>n;
    for(int i = 1; i<=n; i++)
    {
        f>>graf[i].val;
    }
    int x, y;
    f>>x>>y;
    while(!f.eof())
    {
        graf[x].con.push_back(y);
        graf[y].con.push_back(x);
        f>>x>>y;
    }
}

int getVal(int nr)
{
    int sum = graf[nr].val;
    viz[nr] = true;
    for(int i = 0; i<graf[nr].con.size(); i++)
    {
        if(!viz[graf[nr].con[i]])
        {
            sum = max(sum, sum+getVal(graf[nr].con[i]));
        }
    }
    if(sum > maxim)
        maxim = sum;
    return sum;
}

void afisare()
{
    g<<maxim;
}

int main()
{
    read();
    getVal(1);
    afisare();
    return 0;
}