Cod sursa(job #286807)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 24 martie 2009 10:42:22
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 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,x,y,c;   
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 ,&y ,&c);   
     x[i]=x;
     y[i]=y;
     cost[i]=c;  
    }
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;
}