Cod sursa(job #562578)

Utilizator cdascaluDascalu Cristian cdascalu Data 23 martie 2011 14:23:09
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
#define MAX 101
#define INF 0x3f3f3f
using namespace std;
int N,C[MAX][MAX];
int main()
{
	ifstream f("royfloyd.in");
	f>>N;
	int i,j,k;
	for(i=1;i<=N;++i)
		for(j=1;j<=N;++j)
			f>>C[i][j];
	f.close();
	for(k=1;k<=N;++k)
		for(i=1;i<=N;++i)
			for(j=1;j<=N;++j)
				if(C[i][k] && C[k][j] && (C[i][k] + C[k][j] < C[i][j] || !C[i][j]) && i!=j)
					C[i][j] = C[i][k] + C[k][j];

	ofstream g("royfloyd.out");
	for(i=1;i<=N;++i)
	{
		for(j=1;j<=N;++j)
		{
			if(C[i][j] == INF)C[i][j] = 0;
			g<<C[i][j]<<" ";
		}
		g<<"\n";
	}
	g.close();
	return 0;
}