Pagini recente » Cod sursa (job #611700) | Rating Geo Geo (GeorgeC) | Cod sursa (job #1148540) | Istoria paginii algoritmiada-2019/clasament/maraton-preoni-preoji | Cod sursa (job #2856876)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
const int N = 16000;
const int INF = 1e9;
int viz[N+5], val[N+5], sum[N+5];
vector <int> a[N+5];
void asmax(int x)
{
viz[x] = 1;
sum[x] = val[x];
for(auto y: a[x])
{
if(!viz[y])
{
asmax(y);
if(sum[y] > 0)
sum[x] += sum[y];
}
}
}
int main()
{
int n, u, v;
fin >> n;
for(int i = 1; i <= n; i++)
{
fin >> val[i];
}
while(fin >> u >> v)
{
a[u].push_back(v);
a[v].push_back(u);
}
asmax(1);
int Max = -INF;
for(int i = 1; i <= n; i++)
{
Max = max(Max, sum[i]);
}
fout << Max << "\n";
return 0;
}