Cod sursa(job #1427979)

Utilizator stef93Stefan Gilca stef93 Data 3 mai 2015 13:56:58
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>

int main() {
	FILE *in = fopen("royfloyd.in", "r");
	FILE *out = fopen("royfloyd.out", "w");

	int n;
	int mat[101][101];
	int i, j, k;

	fscanf(in, "%d", &n);

	for (i = 1; i <= n; ++i) {
		for (j = 1; j <= n; ++j) {
			fscanf(in, "%d", &mat[i][j]);
		}
	}
	fclose(in);
	for (k = 1; k <= n; ++k) {
		for (i = 1; i <= n; ++i) {
			for (j = 1; j <= n; ++j) {
				if (mat[i][k] != 0 && mat[k][j] != 0 && i != j
						&& (mat[i][j] > mat[i][k] + mat[k][j] || mat[i][j] == 0)) {
					mat[i][j] = mat[i][k] + mat[k][j];
				}
			}
		}

	}

	for (i = 1; i <= n; ++i) {
		for (j = 1; j <= n; ++j) {
			fprintf(out, "%d ", mat[i][j]);
		}
		fprintf(out, "\n");
	}

	fclose(out);
	return 0;
}