Cod sursa(job #933294)

Utilizator andreifirstCioara Andrei Ioan andreifirst Data 29 martie 2013 19:53:46
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
using namespace std;

ifstream f("royfloyd.in"); ofstream g("royfloyd.out");

const int INF = 1000000;

int v[105][105];
int i, j, k, n;

int main(){
	f>>n;
	for (i=1; i<=n; i++) {
		for (j=1; j<=n; j++){
			f>>v[i][j];
			if (v[i][j]==0 && i!=j) v[i][j]=INF;
		}
	}
	
	for (k=1; k<=n; k++){
		for (i=1; i<=n; i++){
			for (j=1; j<=n; j++){
				if (v[i][k]+v[k][j] < v[i][j]) v[i][j]=v[i][k] + v[k][j];
			}
		}
	}
	
	for (i=1; i<=n; i++) {
		for (j=1; j<=n; j++){
			g<<(v[i][j]==INF ? 0 : v[i][j]) <<' ';
		}
		g<<"\n";
	}
}