Cod sursa(job #1845050)

Utilizator Grama911Grama Andrei Grama911 Data 10 ianuarie 2017 20:20:27
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>

FILE *f = fopen("royfloyd.in", "r");
FILE *g = fopen("royfloyd.out", "w");

int a[101][101], t[101][101];

int main()
{
	int n, i, j, k;
	fscanf(f, "%d", &n);
	for (i = 1; i <= n; i++)
		for (j = 1; j <= n; j++)
		{
			fscanf(f, "%d", &a[i][j]);
			if (a[i][j])t[i][j] = i;
		}
	for (k = 1; k <= n; k++)
		for (i = 1; i <= n; i++)
			for (j = 1; j <= n; j++)
				if (i != j&&i != k&&j != k)
					if (a[i][k] && a[k][j] && (a[i][j] == 0 || a[i][k] + a[k][j]<a[i][j]))
					{
						a[i][j] = a[i][k] + a[k][j];
						t[i][j] = k;
					}
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= n; j++)
			fprintf(g,"%d ", a[i][j]);
		fprintf(g,"\n");
	}
	return 0;
}