Cod sursa(job #1068602)

Utilizator IonMosnoiIon Mosnoi IonMosnoi Data 28 decembrie 2013 15:31:50
Problema Algoritmul lui Dijkstra Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include<fstream>
const int inf = -10000;

using namespace std;
const int maxn = 5000;
int a[maxn][maxn],n,m;



main(){
   freopen("dijkstra.in","r",stdin);
   freopen("dijkstra.out","w",stdout);
  
  int x,y,z;
  for(int k=1;k<=n;k++)
     for(int i=1;i<=n;i++)
	     a[k][i]=0;

scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d %d %d",&x,&y,&z)	;
a[x][y]=z;
};/*
for(int k=1;k<=n;k++)
	for(int i=n;i>=1;i--)
		for(int j=1;j<=n;j++)
		 	if(a[i][k]+a[k][j]<a[i][j] )a[i][j]=a[i][k]+a[k][j];
		 	*/
 int i, j, k;
    for (k = 1; k <= n; k++)
        for (i = 1; i <= 1; i++)
            for (j = 1; j <= n; j++)
                if (a[i][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]) && i != j) a[i][j] = a[i][k] + a[k][j];		 	
		 
 for(int k=2;k<=n;k++)printf("%d ",a[1][k]);

//  printf("\n");

 
    
  
  
}