Cod sursa(job #584624)

Utilizator t2011tVasilescu Popescu t2011t Data 26 aprilie 2011 10:34:43
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define inf 21000000
using namespace std;

int n;
int v[100][100];

int main()
{
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

int i1,i2,i3;

//citire
in>>n;
for(i1=0;i1<n;i1++)
	for(i2=0;i2<n;i2++)
		{
		in>>v[i1][i2];
		if(!v[i1][i2])
			if(i1 != i2)
				v[i1][i2] = inf;
		}
//

for(i3=0;i3<n;i3++)
	for(i1=0;i1<n;i1++)
		for(i2=0;i2<n;i2++)
			{
			if(v[i1][i2] > v[i1][i3] + v[i3][i2])
				v[i1][i2] = v[i1][i3] + v[i3][i2];
			}

for(i1=0;i1<n;i1++)
	{
	for(i2=0;i2<n;i2++)
		{
		if(v[i1][i2] == inf)
			out<<"0 ";
		else
			out<<v[i1][i2]<<' ';
		}
	out<<'\n';
	}
in.close();
out.close();
return 0;
}