Cod sursa(job #1330365)

Utilizator andreiulianAndrei andreiulian Data 30 ianuarie 2015 17:03:28
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<iostream>
#include<fstream>
const int ii=100000000;
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int n,m[100][100];
int main()
{
	in>>n;
	int i,j,k;
	for(i=1;i<=n;++i)
	{
		for(j=1;j<=n;++j)
		{
			in>>m[i][j];
			if(!m[i][j]) m[i][j]=ii;
		}
	}
	for(k=1;k<=n;++k)
	{
		for(i=1;i<=n;++i)
		{
			for(j=1;j<=n;++j)
			{
				if(m[i][j]>m[i][k]+m[k][j])
				{
					m[i][j]=m[i][k]+m[k][j];
					//cout<<m[i][j]<<' '<<m[i][k]<<' '<<m[k][j]<<'\n';
				}
			}
		}
	}
	for(i=1;i<=n;++i)
	{
		for(j=1;j<=n;++j)
		{
			if(m[i][j]!=ii && i!=j)
				out<<m[i][j]<<' ';
			else out<<0<<' ';
		}
		out<<'\n';
	}
}