Cod sursa(job #3360222)

Utilizator medeeavasile56@gmail.comVasile Medeea [email protected] Data 10 iulie 2026 17:31:21
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <climits>
#include <vector>
using namespace std;
ifstream cin("asmax.in");
ofstream cout("asmax.out");
const int NMAX=16006;
int n,summax[NMAX];
void dfs(vector<vector<int>>&graph,vector<int>&v,int node,int parent)
{
    summax[node]=v[node];
    for(int son:graph[node])
    {
        if(son!=parent){
            dfs(graph,v,son,node);
            if(summax[son]>0) summax[node]+=summax[son];
        }
    }
}
int main()
{
    int n,ct;
    cin>> n; vector<vector<int>> graph(n+1,vector<int>());
    vector<int> v(n+1);
    for(int i=1;i<=n;i++) cin>>v[i];
    for(int i=1;i<=n-1;i++) {
        int x,y; cin>>x>>y;
        graph[x].push_back(y);
        graph[y].push_back(x);
    } dfs(graph,v,1,0);
    int maxi=INT_MIN;
    for(int i=1;i<=n;i++) maxi=max(maxi,summax[i]);
    cout<<maxi;
    return 0;
}