Cod sursa(job #1651375)

Utilizator dodecagondode cagon dodecagon Data 13 martie 2016 09:07:44
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
#define Nmax 50009
#define inf  0xfffff

int d[Nmax],a[5*Nmax],b[5*Nmax],c[5*Nmax],n,m,i,j,np;

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

   scanf("%d%d",&n,&m);
   for (i=0;i<m;i++)
   	scanf("%d%d%d",a+i,b+i,c+i);
   int ok=1;d[1]=0;
   for (i=2;i<=n;i++)
   	d[i]=inf;np=0;
   while (ok && np<n)
   {
   	ok=0;
   	for (i=0;i<m;i++)
   	{
   		if (d[a[i]]+c[i]<d[b[i]])
   		{
           d[b[i]]=d[a[i]]+c[i];
           ok=1;
   		}
   	}
   	np++;
   }
  
  for (i=2;i<=n;i++)
  	printf("%d ",d[i]==inf ? 0:d[i]);

	return 0;
}