Cod sursa(job #1428979)

Utilizator emiiMihailescu Ionut Emanuel emii Data 5 mai 2015 14:07:11
Problema Asmax Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.73 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
vector <int> G[16006];
int maxi,s[16006],v[16006],viz[16006];
void dfs(int nod)
{
    int k;
    viz[nod]=1;
    s[nod]=v[nod];
    for(int j=0;j<G[nod].size();j++)
        {
            k=G[nod][j];
            if(!viz[k])
                {dfs(k);
                if(s[nod]<s[nod]+s[k])
                    s[nod]+=s[k];
                }
        }
        if(s[nod]>maxi)
            maxi=s[nod];
}
int main()
{int n;
f>>n;
for(int i=1;i<=n;i++)
    f>>v[i];
for(int i=1;i<n;i++)
{
    int x,y;
    f>>x>>y;
    G[x].push_back(y);
    G[y].push_back(x);
}
maxi=-1006;
dfs(1);
g<<maxi;
return 0;
}