Cod sursa(job #562575)

Utilizator cdascaluDascalu Cristian cdascalu Data 23 martie 2011 14:18:43
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 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];
			if(C[i][j] == 0)C[i][j] = INF;
		}
	f.close();
	for(k=1;k<=N;++k)
		for(i=1;i<=N;++i)
			if(k!=i)
			for(j=1;j<=N;++j)
				if(j!=i&&j!=k)
					if(C[k][i] + C[i][j] < C[k][j])C[k][j] = C[k][i] + C[i][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;
}