Pagini recente » Atasamentele paginii chat | Cod sursa (job #2018335) | Cod sursa (job #3333532) | Cod sursa (job #205015) | Cod sursa (job #3335461)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
const int NMAX = 16000;
int val_nod[NMAX+1];
bool vizitat[NMAX+1];
vector<int>Mat_adi[NMAX+1];
int raspuns;
int nr_noduri;
void citire(){
int a,b;
fin>>nr_noduri;
for(int i=1;i<=nr_noduri;i++){
fin>>val_nod[i];
}
for(int i=1;i<nr_noduri;i++){
fin>>a>>b;
Mat_adi[a].push_back(b);
Mat_adi[b].push_back(a);
}
}
int DFS(int nod){
int sum = val_nod[nod];
for(auto copil:Mat_adi[nod]){
if(vizitat[copil] == false){
vizitat[copil] = true;
sum += DFS(copil);
}
}
if(sum>raspuns){
raspuns = sum;
}
if(sum<0){
sum = 0;
}
return sum;
}
void solve(){
raspuns = val_nod[1];
vizitat[1] = true;
DFS(1);
fout<<raspuns;
}
int main(){
cout<<INT_MAX;
citire();
solve();
return 0;
}