Cod sursa(job #659394)

Utilizator XbyteAvram Florin Xbyte Data 10 ianuarie 2012 16:48:13
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<cstdio>
#include<fstream>

using namespace std;

const int MaxN = 101;
const char InFile[] = "royfloyd.in";
const char OutFile[] = "royfloyd.out";

int N,G[MaxN][MaxN];

ifstream fin(InFile);
ofstream fout(OutFile);

int main()
{
	fin >> N;
	int i,j,k;
	for( i = 1 ; i <= N ; i++ )
		for( j = 1 ; j <= N ; j++ )
			fin >> G[i][j];
	fin.close();
	for( k = 1 ; k <= N ; k++ )
		for( i = 1 ; i <= N ; i++ )
			for( j = 1 ; j <= N ; j++ )
				if( G[i][k] && G[k][j] && (G[i][k] + G[k][j] < G[i][j] || !G[i][j]) && i != j )
					G[i][j] = G[i][k] + G[k][j];
	for( i = 1 ; i <= N ; i++ )
		{
			for( j = 1 ; j <= N ; j++ )
				fout << G[i][j] << ' ';
			fout << '\n';
		}
	fout.close();
	return 0;
}