Cod sursa(job #874852)

Utilizator bogdan1515rusu bogdan bogdan1515 Data 9 februarie 2013 13:10:10
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE *f,*g;
	f=fopen("royfloyd.in","r");
	g=fopen("rowfloyd.out","w");
	int **a;
	int n;
	fscanf( f, "%d", &n);
	a=(int**)malloc(n*sizeof(int));
	for(int i=1;i<=n;i++)
		a[i]=(int*)malloc(n*sizeof(int));
	for( int i=1;i<=n;i++)
		for( int j=1;j<=n;j++)
			fscanf( f, "%d",&a[i][j]);
	for(int k=1;k<=n;k++)
		for( int i=1;i<=n;i++)
			for( int j=1;j<=n;j++)
				if( a[i][k] + a[k][j] < a[i][j])
					a[i][j]=a[i][k] + a[k][j];
	for( int i=1;i<=n;i++)
			{
				for( int j=1;j<=n;j++)
					fprintf( g, "%d	", a[i][j]);
				fprintf( g, "\n");
	}
	fclose(f);
	fclose(g);
	
	return 0;
}