Cod sursa(job #654351)

Utilizator lucian666Vasilut Lucian lucian666 Data 30 decembrie 2011 12:31:46
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
#include<iomanip>
using namespace std;
ofstream fout("royfloyd.out");
int a[105][105],n;
void citire();
void floyd();
void afis(int a[105][105],int n);
int main()
{
	
	citire();
	floyd();
	afis(a,n);
	return 0;
}
void citire()
{ifstream fin("royfloyd.in");
	fin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
			fin>>a[i][j];
}
void afis(int a[105][105],int n)
{
	for(int i=1;i<=n;i++)
	{
		
		for(int j=1;j<=n;j++)
			fout<<a[i][j]<<" ";
		fout<<"\n";
	}
}
void floyd()
{
	int i,j,k;
		for(k=1;k<=n;k++)
			for(i=1;i<=n;i++)
				for(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];
}