Cod sursa(job #2856883)

Utilizator bogdan.svai2004@gmail.comSvaicovschi Bogdan-Gabriel [email protected] Data 24 februarie 2022 15:15:05
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
#include<vector>
std :: ifstream in("asmax.in");
std :: ofstream out("asmax.out");

using namespace std;
const int N = 16000;
	
int viz[N + 1];
	
int suma[N + 1];
	
int val[N + 1];
	
vector<int> a[N + 1];
void asmax (int x)
{
    viz[x] = 1;
    suma[x] = val[x];
    for (auto y: a[x])
    {
        if (!viz[y]){ asmax(y); if (suma[y] > 0) suma[x] += suma[y];    }
    }
	
}
int main()
{
    int n;
    in >> n;
	 for (int i=1; i<=n; i++) in >> val[i];
	 for (int i=1; i< n; i++){
	        int x, y;
	        in >> x >> y;
	        a[x].push_back(y);
	        a[y].push_back(x);
    }
    asmax(1);
    int maxim = -1000000;
    for (int i=1; i<=n; i++) if (suma[i] > maxim)  maxim = suma[i];
	
    out << maxim;
	
    return 0;
	
}