Cod sursa(job #2954869)

Utilizator Utucora2017Nicolae Utucora2017 Data 15 decembrie 2022 18:01:26
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream cin("asmax.in");
ofstream cout("asmax.out");
vector <int> a[16001];
int sume[16001],v[16001],maxi=-99999999;
void dfs(int nod){
    v[nod]=1;
    for(int i=0;i<a[nod].size();i++){
        int vecin=a[nod][i];
        if(!v[vecin]){
            dfs(vecin);
            sume[nod]=max(sume[nod],sume[nod]+sume[vecin]);
            if(sume[nod]>maxi)
                maxi=sume[nod];
        }
    }
}
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>sume[i];
    for(int i=1;i<n;i++){
        int x,y;
        cin>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    dfs(1);
    cout<<maxi;
}