Cod sursa(job #745399)

Utilizator adysnookAdrian Munteanu adysnook Data 11 mai 2012 14:56:18
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>

using namespace std;

#define N 100

int n, a[N][N];

int main(){
	ifstream fin("royfloyd.in");
	fin>>n;
	int i, j, k;
	for(i=0; i<n; i++)
		for(j=0; j<n; j++)
			fin>>a[i][j];
	fin.close();
	for(k=0; k<n; k++)
		for(i=0; i<n; i++)
			for(j=0; j<n; j++){
				if(i==j || i==k || j==k || !a[i][k] || !a[k][j])
					continue;
				a[i][j]=min(a[i][j], a[i][k]+a[k][j]);
			}
	ofstream fout("royfloyd.out");
	for(i=0; i<n; i++){
		for(j=0; j<n; j++)
			fout<<a[i][j]<<" ";
		fout<<"\n";
	}
	fout.close();
	return 0;
}