Cod sursa(job #2675960)

Utilizator Andrew09Mocanu Octavian Andrew09 Data 23 noiembrie 2020 01:16:40
Problema Asmax Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
vector <int> a[16001];
int n,b[16001],viz[16001],c[16001],i,j,summax;
int dfs(int x)
{int y,sum=c[x];
viz[x]=1;
for(int k=0;k<a[x].size();k++)
    if(!viz[a[x][k]]) {y=dfs(a[x][k]);
     if(y>0) sum+=y;
    }
if(sum<0) return 0;
return sum;
}
int main()
{f>>n;
for(int k=1;k<=n;k++) f>>c[k];
for(int k=1;k<n;k++)
{f>>i>>j;a[i].push_back(j);a[j].push_back(i);}
for(int i=1;i<=n;i++)
    {for(int j=1;j<=n;j++) viz[j]=0;
    summax=max(summax,dfs(i));}
g<<summax;
    return 0;
}