Cod sursa(job #2456599)

Utilizator UnDragosDragos Ioana UnDragos Data 14 septembrie 2019 19:35:43
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void royfloyd(int*** rez, int N)
{
	for (int i = 1; i <= N; i++)
	{
		for (int j = 1; j <= N; j++)
		{
			for (int k = 1; k <= N; k++)
			{

				if ((*rez)[j-1][k-1] > (*rez)[j-1][i-1] + (*rez)[i-1][k-1])
				{
					(*rez)[j - 1][k - 1] = (*rez)[j - 1][i - 1] + (*rez)[i - 1][k - 1];
				}
			}
		}
	}
}
int main()
{
	FILE* fp = fopen("royfloyd.in", "r");
	FILE* fout = fopen("royfloyd.out", "w");
	int N;
	fscanf(fp, "%d", &N);
	int** mat_ponderi = new int* [N];
	for (int i = 0; i < N; i++)
	{
		mat_ponderi[i] = new int[N];
	}
	for(int i=0;i<N;i++)
		for (int j = 0; j < N; j++)
		{
			fscanf(fp, "%d", &mat_ponderi[i][j]);
		}
	royfloyd(&mat_ponderi, N);
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			fprintf(fout,"%d ", mat_ponderi[i][j]);

		}
		fprintf(fout,"\n");
	}
	return 0;

}