Cod sursa(job #755410)

Utilizator dragosd2000Dumitrache Dragos dragosd2000 Data 5 iunie 2012 18:31:55
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>


using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

int n;
float a[100][100],c[100][100];

void royfloyd()
{
	int k, i, j;
	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] || a[i][j] == 0) && a[i][k] && a[k][j] && i!=j)
					a[i][j] = a[i][k]+ a[k][j];
}


int main()
{
	//	read();
		int i,j;
		fin>>n;
		for(i = 1;i<=n;i++)
			for(j=1;j<=n;j++)
				{
					fin>>a[i][j];
					c[i][j] = a[i][j];
				}
		royfloyd();
			for(i=1;i<=n;i++)
			{
				for(j=1;j<=n;j++)
					fout<<a[i][j]<<" ";
				fout<<"\n";
			}
		return 0;
}