Cod sursa(job #931421)

Utilizator dudutCancel Radu Constantin dudut Data 28 martie 2013 10:59:55
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<iostream>
#include<cstdio>
#include<cstdlib>


int main() {
	freopen("royfloyd.in","r",stdin);
	freopen("royfloyd.out","w",stdout);
	int n;
	scanf("%d", &n);
	int i,j,k;
	int a[100][100];
	for( i = 1; i <= n; i++)
		for( j = 1 ; j <= n; j++){
			scanf("%d", &a[i][j]);
			if (a[i][j] == 0) a[i][j] = 1010;
		}
	for( k = 1; k <= n; k++) 
		for( i = 1; i <= n ;i++)
			for( j = 1; j<= n; j++)
				if(a[i][j] > a[i][k] + a[k][j] && i!=j)
					a[i][j] = a[i][k] + a[k][j];
	for( i = 1; i <= n; i++)
		a[i][i] = 0;
	for( i = 1; i <= n; i++) {
		for( j = 1 ; j <= n; j++)
			printf("%d ", a[i][j]);
		printf("\n");
	}
	return 0;
}