Cod sursa(job #286802)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 24 martie 2009 10:40:09
Problema Algoritmul lui Dijkstra Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>;   
#define inf 2000000000   
#define nmax 50002   
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 ");   
return 0;
}