Cod sursa(job #1235949)

Utilizator cristi23ciulica cristian cristi23 Data 30 septembrie 2014 22:43:46
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <vector>
#include <limits.h>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
vector <int> a[16001];
int n,i,x,y,v[16001],nrel[16001],maxsuma,viz[16001];

void coada(int nr){
    viz[nr]=1;
    for(int i=0;i<nrel[nr];i++){
        if(viz[a[nr][i]]==0){
            int el=a[nr][i];
            coada(el);
            if(v[nr]+v[a[nr][i]]>v[nr])
                v[nr]=v[nr]+v[a[nr][i]];
                if (maxsuma<v[nr])
                    maxsuma=v[nr];
        }
    }

}
int main()
{
    int Max=INT_MIN,p=0;
    maxsuma=INT_MIN;
    f>>n;
    for(i=1;i<=n;i++){
        f>>v[i];
        if(v[i]>Max){
            Max=v[i];
            p=i;
        }
    }
    for(i=1;i<=n;i++){
        f>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    for(i=1;i<=n;i++)
        nrel[i]=a[i].size();
    coada(p);
    g<<maxsuma;
    return 0;
}