Cod sursa(job #279211)

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

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

int main()
{citire();
  for(i=2;i<=n;i++)
   d[i]=inf;
  for(i=1;i<=m;i++)
  if(a[i].x==1)d[a[i].y]=a[i].c;


  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;
}