Cod sursa(job #2231682)

Utilizator gabrielxCojocaru Gabriel-Codrin gabrielx Data 15 august 2018 16:37:54
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>

using namespace std;

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

#define INF 1e9

int main() {
	int matriceDrum[100][100];
	int N;

	fin >> N;
	for (int i = 0; i < N; ++i) {
		for (int j = 0; j < N; ++j) {
			fin >> matriceDrum[i][j];

			if (matriceDrum[i][j] == 0) {
				matriceDrum[i][j] = (int)INF;
			}

			if (i == j) {
				matriceDrum[i][j] = 0;
			}
		}
	}

	for (int k = 0; k < N; ++k) {
		for (int i = 0; i < N; ++i) {
			for (int j = 0; j < N; ++j) {
				if (matriceDrum[i][k] + matriceDrum[k][j] < matriceDrum[i][j]) {
					matriceDrum[i][j] = matriceDrum[i][k] + matriceDrum[k][j];
				}
			}
		}
	}

	for (int i = 0; i < N; ++i) {
		for (int j = 0; j < N; ++j) {
			if (matriceDrum[i][j] == (int)INF) {
				fout << 0 << ' ';
			}
			else {
				fout << matriceDrum[i][j] << ' ';
			}
		}

		fout << '\n';
	}
}