Cod sursa(job #412367)

Utilizator slayer4uVictor Popescu slayer4u Data 5 martie 2010 15:35:21
Problema Algoritmul lui Dijkstra Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>

long a, b, c, n, m, graf[20000][20000];

int main()
{
	freopen ("dijkstra.in", "rt", stdin);
	freopen ("dijkstra.out", "wt", stdout);

	scanf("%ld %ld", &n, &m);

	for (long i = 1; i <= m; ++i)
	{
		scanf("%ld %ld %ld", &a, &b, &c);
		graf[a][b] = graf[b][a] = c;
	}
	
	
	for (long j = 1; j <= n; ++j)
		for (long i = 2; i <= n; ++i)
		{
			if (graf[1][j] && graf[j][i] && (graf[1][j] + graf[j][i] < graf[1][i] || !graf[1][i]))
				graf[1][i] = graf[1][j] + graf[j][i];
		}

	for (long i = 2; i <= n; ++i)
	{
		printf("%ld ", graf[1][i]);
	}
	printf("\n");

	return 0;
}