Cod sursa(job #1132663)

Utilizator 0x7c00Gabriel Ciubotaru 0x7c00 Data 3 martie 2014 19:42:30
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.69 kb
#define _CRT_SECURE_NO_WARNINGS
#include <malloc.h>
#include <stdio.h>
#include <string.h>
#define NAME "royfloyd"
#define OPEN f = fopen(NAME".in","r");g = fopen(NAME".out","w");
FILE *f,*g;

#define N_MAX 100

int a[N_MAX][N_MAX];
int i,j,k;
int n;
int main()
{
	OPEN;
	fscanf(f,"%d",&n);
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			fscanf(f,"%d",&a[i][j]);
	for(k=0;k<n;k++)
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				if((i!=j)&&(j!=k)&&(k!=i))
					if(a[i][k] * a[k][j] != 0)
						if((a[i][k] + a[k][j] < a[i][j])||(a[i][j] == 0))
							a[i][j] = a[i][k] + a[k][j];
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			fprintf(g,"%d ",a[i][j]);
		fprintf(g,"\n");
	}
	fclose(g);
}