Pagini recente » Cod sursa (job #1489365) | Cod sursa (job #2197485) | Cod sursa (job #317969) | Cod sursa (job #588943) | Cod sursa (job #3238397)
#include<fstream>
#include<vector>
using namespace std;
const int nmax = 16000;
int n, m, val[nmax+1];
bool viz[nmax+1];
vector<int>a[nmax+1];
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int smaxdfs(int nod){
int s , max = 0;
for(int vec : a[nod]){
if(viz[vec] == 0){
viz[vec] = 1;
s = smaxdfs(vec);
if(s > max) max = s;
}
val[nod] += max;
return val[nod];
}
}
int main(){
fin>>n>>m;
for(int i = 1; i <=n; i++){
int x;
fin>>x;
val[i] = x;
}
int x,y;
while(fin>>x>>y){
a[x].push_back(y);
a[y].push_back(x);
}
int max = smaxdfs(1), s;
for(int i = 1; i <= n; i++){
s = val[i];
if(s > max) max = s;
}
fout<<max;
}