Cod sursa(job #14308)

Utilizator rusRus Sergiu rus Data 8 februarie 2007 18:30:34
Problema Asmax Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>
#define dim 16001

typedef struct nod{
	int info;
	nod*urm;
	}*pnod,NOD;
pnod l[dim];

int s[dim];
int v[dim];
int n,m;
int suma[dim];

void citire();
void add(int ,int );
void df(int );
void afisare();

int main()
{
	freopen("asmax.in","r",stdin);
	freopen("asmax.out","w",stdout);

	citire();
	for(int i=1;i<=n;i++)
	df(i);
	afisare();
	return 0;
}
void citire()
{
	scanf("%d %d",&n,&m);
	int i,x,y;
	for(i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		suma[i]=v[i];
	}
	for(int j=1;j<=m;j++)
	{
		scanf("%d %d",&x,&y);
		add(x,y);
		add(y,x);
	}
	//for(pnod p=l[1];p;p=p->urm)
	//printf("%d ",p->info);
}
void add(int i,int j)
{
	pnod p=new NOD;
	p->info=j;
	p->urm=l[i];
	l[i]=p;
}
void df(int nod)
{
	for(pnod p=l[nod];p;p=p->urm)
	    suma[nod]+=v[p->info];
}

void afisare()
{
	int max=-32000,i;
	for(i=1;i<=m;i++)
	if(suma[i]>max)
	max=suma[i];
	if(max<0)
	max=0;
	printf("%d\n",max);
}