Cod sursa(job #148712)

Utilizator c_sebiSebastian Crisan c_sebi Data 4 martie 2008 19:07:01
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>

int n, a[100][100];

void royfloyd(){
	int i, j, k;
	for(k=0; k<n; k++)
		for(i=0; i<n; i++)
			for(j=0; j<n; j++)
				if(a[i][k] + a[k][j] < a[i][j])
					a[i][j] = a[i][k] + a[k][j];
}


int main(){
	int i, j;
	FILE *f=fopen("royfloyd.in", "r");
	FILE *g=fopen("royfloyd.out", "w");
	fscanf(f, "%d", &n);
	for(i=0; i<n; i++)
		for(j=0; j<n; j++)
			fscanf(f, "%d", &a[i][j]);
	royfloyd();
	for(i=0; i<n; i++) {
		for(j=0; j<n; j++)
			fprintf(g, "%d ", a[i][j]);
		fprintf(g, "\n");
	}
	fclose(f);
	fclose(g);
	return 0;
}