Cod sursa(job #1181950)

Utilizator bluetigerTokes Atti bluetiger Data 4 mai 2014 12:40:49
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
// http://www.infoarena.ro/problema/royfloyd
#include <fstream>
using namespace std;

#define FOR(i, n) for (int i = 0; i < n; ++i)
int main() {
	ifstream  in("royfloyd.in");
	ofstream out("royfloyd.out");

	int N;
	in >> N;

	int a[100][100];
	FOR(i, N) {
		FOR(j, N) {
			in >> a[i][j];
		}
	}

	FOR(k, N) {
		FOR (i, N) {
			FOR (j, N) {
				if ((a[i][k]) && (a[k][j]) && ((a[i][j] == 0) || (a[i][k] + a[k][j] < a[i][j]))) {
					a[i][j] = a[i][k] + a[k][j];
				}
			}
		}
	}

	FOR(i, N) {
		FOR(j, N) {
			out << a[i][j] << " ";
		}
		out << endl;
	}


	return 0;
}