Cod sursa(job #1756248)

Utilizator irinapatularuPatularu Irina irinapatularu Data 12 septembrie 2016 14:19:23
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;

int N;
int matrix[101][101];

void rezolvare(){
	int i, k, j;

	for(k = 1; k <= N; k++)
		for(i = 1; i<= N; i++)
			for(j = 1; j <= N; j++)
					if(matrix[i][j] > matrix[i][k] + matrix[k][j])
						matrix[i][j] = matrix[i][k] + matrix[k][j];
}
int main(){
	
	ifstream f("royfloyd.in");
	ofstream g("royfloyd.out");
	f >> N;
	for(int i = 1; i <= N; i++)
		for(int j = 1; j <= N; j++){
			f >> matrix[i][j];
			if(matrix[i][j] == 0 && i != j)
				matrix[i][j] = INT_MAX;
		}

	f.close();

	rezolvare();

	for(int i = 1; i <= N; i++){
		for(int j = 1; j <= N; j++)
			if(matrix[i][j] == INT_MAX)
				g << '0';
			else
				g << matrix[i][j] << " ";
		g << "\n";
	}
	g.close();
	return 0;

}