Pagini recente » Cod sursa (job #1677987) | Borderou de evaluare (job #993669) | Cod sursa (job #1974992) | Cod sursa (job #3164031) | Cod sursa (job #14308)
Cod sursa(job #14308)
#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);
}