Cod sursa(job #3375521)
| Utilizator | Data | 12 noiembrie 2026 10:53:40 | |
|---|---|---|---|
| Problema | Asmax | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n,x,y,cost[16005],viz[16005],suma[16005],ans=INT_MIN;
vector<int>g[16005];
void dfs(int nod){
viz[nod]=1;
suma[nod]=cost[nod];
for(int i:g[nod])
if(!viz[i]){
dfs(i);
suma[nod]+=max(0,suma[i]);
}
ans=max(ans,suma[nod]);
}
int main() {
fin>>n;
for(int i=1;i<=n;++i)
fin>>cost[i];
while(fin>>x>>y){
g[x].push_back(y);
g[y].push_back(x);
}
dfs(1);
fout<<ans;
return 0;
}
