Cod sursa(job #654344)

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