Cod sursa(job #2875978)

Utilizator luca.prunoiuluca prunoiu luca.prunoiu Data 22 martie 2022 19:23:58
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <vector>

using namespace std;
const int M=16010;
int v[M];
vector<int>graf[M];
bool used[M];
void DFS(int node)
{
    used[node]=true;
    for(int i=0;i<graf[node].size();i++)
    {
        int neighbour=graf[node][i];
        if(!used[neighbour])
        {
            DFS(neighbour);
            if(v[neighbour]>0)
                v[node]+=v[neighbour];
        }
    }
}

int main()
{
    ifstream in("asmax.in");
    ofstream out("asmax.out");
    int n;
    in>>n;
    for(int i=1;i<=n;i++)
    {
        in>>v[i];
    }
    for(int i=1;i<n;i++)
    {
        int x,y;
        in>>x>>y;
        graf[x].push_back(y);
        graf[y].push_back(x);
    }
    DFS(1);
    int s_maxi=v[1];
    for(int i=2;i<=n;i++)
    {
        if(v[i]>s_maxi)
            s_maxi=v[i];
    }
    out<<s_maxi;
    in.close();
    out.close();
    return 0;
}