Cod sursa(job #1295066)

Utilizator otnielMercea Otniel otniel Data 18 decembrie 2014 19:06:41
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<iostream>
using namespace std;
#include<stdio.h>
FILE *f,*g;
int suma=-9999999999,n,i,j,val[16002],s[16002],m,n1;
struct nod
{
    int nd;
    nod *urm;
};
nod *l[16002],*p;
int df(int q,int w)
{
   s[q]=1;
   while(l[q])
   {
       if(s[l[q]->nd]==0)
       {
      df(l[q]->nd,q);
      }
      l[q]=l[q]->urm;
   }
     if(w!=q)
     {
         if(val[q]+val[w]>val[w])
            val[w]=val[q]+val[w];
     }
}
int main()
{
    f=fopen("asmax.in","r");
    g=fopen("asmax.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
    {
        fscanf(f,"%d",&val[i]);
    }
    while(!feof(f))
    {
        fscanf(f,"%d %d",&i,&j);
        p=new nod;
        p->urm=l[i];
        p->nd=j;
        l[i]=p;
        p=new nod;
        p->urm=l[j];
        p->nd=i;
        l[j]=p;

    }
    df(1,1);
    for(i=1;i<=n;i++)
        if(val[i]>suma)
            suma=val[i];
        fprintf(g,"%d",suma);
}