Cod sursa(job #416351)

Utilizator samuel91Asofronie Samuel samuel91 Data 12 martie 2010 17:00:16
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h> 
#include<vector> 
using namespace std; 
vector<int> nr[16100]; 
vector<bool> viz(16100,false); 
int N,sol[16100]; 
void df(int x){   
viz[x]=true;  
for(vector<int>::iterator it=nr[x].begin();it!=nr[x].end();++it){        
if(!viz[*it]){            
df(*it);            
if(sol[*it]>0)                 
sol[x]+=sol[*it];         
}    
} 
} 
int main(){   
freopen("asmax.in","r",stdin);    
freopen("asmax.out","w",stdout);    
int i,x,y,S=-100000000;     
scanf("%d",&N);    
for(i=1;i<=N;++i)        
scanf("%d",&sol[i]);     
for(i=1;i<N;++i){         
scanf("%d%d",&x,&y);         
nr[x].push_back(y);         
nr[y].push_back(x);    
}    
df(1);    
for(i=1;i<=N;++i){         
if(sol[i]>S)            
S=sol[i];     
}     
printf("%d\n",S);   
fclose(stdin);     
fclose(stdout);     
return 0; 
}