Cod sursa(job #283822)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 19 martie 2009 22:10:53
Problema Algoritmul lui Dijkstra Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>;
#define inf 200000000
#define nmax 50000
long x[5*nmax],y[5*nmax],cost[5*nmax],d[nmax],p,n,m,i;
int main()
{
freopen("dijkstra.in","r",stdin);
freopen("dijkstra.out","w",stdout);
scanf("%ld %ld",&n,&m);
for (i=1;i<=m;i++)
   scanf("%ld %ld %ld" ,&x[i] ,&y[i] ,&cost[i]);
for (i=2;i<=n;i++)
  d[i]=inf;
p=1;
while (p==1)
{
   p=0;
   for (i=1;i<m;i++)
      if(d[y[i]]>(d[x[i]]+cost[i]))
	 {
	 p=1;
	 d[y[i]]=d[x[i]]+cost[i];
	 }
   }
 for (i=2;i<=n;++i)
    if (d[i]!=inf) printf("%ld ",d[i]);
	  else printf("0 ");
}