Cod sursa(job #760568)

Utilizator raluca_vacaruVacaru Raluca-Ioana raluca_vacaru Data 21 iunie 2012 22:49:02
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int n, c[101][101];

void read () {
	int i, j;
	scanf ("%d", &n);
	for (i=1; i<=n; ++i)
		for (j=1; j<=n; ++j)
			scanf ("%d", &c[i][j]);
}

void solve () {
	int k, i, j;
	for (k=1; k<=n; ++k)
		for (i=1; i<=n; ++i)
			for (j=1; j<=n; ++j)
				c[i][j] = min (c[i][j], c[i][k] + c[k][j]);
}

void write () {
	int i, j;
	for (i=1; i<=n; ++i) {
		for (j=1; j<=n; ++j)
			printf ("%d ", c[i][j]);
		printf ("\n");
	}
}

int main () {
	freopen ("royfloyd.in", "r", stdin);
	read ();
	fclose (stdin);
	solve ();
	freopen ("royfloyd.out", "w", stdout);
	write ();
	fclose (stdout);
	return 0;
}