Cod sursa(job #1989957)

Utilizator KeitaroAbderus Alastor Keitaro Data 9 iunie 2017 18:52:33
Problema Floyd-Warshall/Roy-Floyd Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<iostream>
#include<cstdio>
using namespace std;

int N;
int M[100][100];

void read_m() {
	for (int i = 1; i <= N; i++) {
		for (int j = 1; j <= N; j++)
		{
			scanf("%d ", &M[i][j]);
		}
	}
}

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

int main()
{
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);

	scanf("%d", &N);

	read_m();
	//	for(int k=1;k<=N;k++)

	for (int i = 1; i <= N; i++)
		M[i][i] = 0;

	for (int k = 1; k <= N; k++)
		for (int i = 1; i <= N; i++)
			for (int j = 1; j <= N; j++)
				if (M[i][j] > M[i][k] + M[k][j])
					M[i][j] = M[i][k] + M[k][j];

	write_m();
	return 0;
}