Cod sursa(job #2559272)

Utilizator ivddabDabelea Ioana-Viviana ivddab Data 27 februarie 2020 10:35:52
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <vector>
#define NM 16003
#define VMAX 1000
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
int n,i,x,y,max1;
int c[NM],v[NM];
vector < int > a[NM];
void dfs(int nod,int tata){
  int s;
  s=0;
  for(int i=0;i<a[nod].size();i++){
    int fiu;
    fiu=a[nod][i];
    if(fiu!=tata){
        dfs(fiu,nod);
        s+=max(v[fiu],0);
    }
  }
  s+=c[nod];
  v[nod]=s;
  max1=max(max1,v[nod]);
  if(v[nod]<0)
    v[nod]=0;
}
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>c[i];
    for(i=1;i<n;i++){
        f>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    max1=0-(NM*VMAX);
    dfs(1,0);
    g<<max1<<'\n';
    return 0;
}