Cod sursa(job #279254)

Utilizator colapsyet useless colaps Data 12 martie 2009 18:59:15
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<stdio.h>
#define inf 100000
long n,m,i,gata;
long d[50001];

struct muchie{long x,y,c;}a[250001];
void citire()
{freopen("dijkstra.in","r",stdin);
 freopen("dijkstra.out","w",stdout);
 scanf("%ld%ld",&n,&m);
  for(i=2;i<=n;i++)
   d[i]=inf;
 for(i=1;i<=m;i++)
 {scanf("%ld%ld%ld",&a[i].x,&a[i].y,&a[i].c);
  if(a[i].x==1)d[a[i].y]=a[i].c;
 }
}

int main()
{citire();
  
  gata=0;
 while(!gata)
  {  gata=1;
	for(i=1;i<=m;i++)
	if(d[a[i].y]>d[a[i].x]+a[i].c)
	 {d[a[i].y]=d[a[i].x]+a[i].c;
	  gata=0;
	 }
  }
 for(i=2;i<=n;i++)
  if(d[i]!=inf)printf("%ld ",d[i]);
	else printf("0 ");
return 0;
}