Cod sursa(job #1417914)

Utilizator pas.andreiPopovici Andrei-Sorin pas.andrei Data 11 aprilie 2015 13:44:53
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#define MAX 102

using namespace std;

int v[MAX][MAX];

int main() {
	int n, i, x, y, c, j, k;

	FILE *fin = fopen("royfloyd.in", "r");
	fscanf(fin, "%d", &n);

	for (i = 1; i <= n; ++i)
		for (j = 1; j <= n; ++j)
			fscanf(fin, "%d ", &v[i][j]);
	fclose(fin);

	FILE *fout = fopen("royfloyd.out", "w");

	for (k = 1; k <= n; ++k)
		for (i = 1; i <= n; ++i)
			for (j = 1; j <= n; ++j)
				if ((i != j && i != k && j != k) && 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) {
			fprintf(fout, "%d ", v[i][j]);
		}

		fputc('\n', fout);
	}

	fclose(fout);

	return 0;
}