Cod sursa(job #1443744)

Utilizator miahiFMI Honceriu Mihai miahi Data 28 mai 2015 16:34:10
Problema Asmax Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.95 kb
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
vector<int> muchii[16001];
bool vizitat[16001];
long int sumamax[16001];
void DFS(int i)
{
    for(int j=0;j<muchii[i].size();j++)
    {
        if(vizitat[muchii[i][j]]==0)
        {
            vizitat[muchii[i][j]]=1;
            DFS(muchii[i][j]);
            if(sumamax[muchii[i][j]]>0)
                sumamax[i]+=sumamax[muchii[i][j]];
        }
    }
}
int main()
{
    ifstream f("asmax.in");
    ofstream g("asmax.out");
    int n;
    long int max=-1000;
    f>>n;
    int i,a;
    for(i=1;i<=n;i++)
    {
        f>>a;
        sumamax[i]=a;
        if(a>max)
            max=a;
    }
    int b;
    for(i=1;i<=n-1;i++)
    {
        f>>a>>b;
        muchii[a].push_back(b);
        muchii[b].push_back(a);
    }
    vizitat[1]=1;
    DFS(1);
    for(i=1;i<=n;i++)
        if(sumamax[i]>max)
            max=sumamax[i];
    g<<max;
}