Cod sursa(job #1340166)

Utilizator cociorbaandreiAndrei Cociorba cociorbaandrei Data 11 februarie 2015 16:52:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include "stdio.h"
using namespace std;
int n, a[105][105];

int main()
{
	/* code */
	freopen("royfloyd.in","r",stdin);
	freopen("royfloyd.out","w",stdout);
	
	scanf("%d", &n);
	for(int i = 1; i <= n;i++)
		for(int j = 1; j <= n;j++)
			scanf("%d", &a[i][j]);

	for (int k = 1; k <= n; ++k)
		for (int i = 1; i <= n;i++)
			for(int 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 i = 1; i <= n;i++){
		for(int j = 1; j <= n; j++){
			printf("%d ",a[i][j]);;
		}
		printf("\n");
	}
	return 0;
}