Cod sursa(job #832960)

Utilizator Brz_VladBrezae Vlad Brz_Vlad Data 11 decembrie 2012 18:53:37
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator c Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>

int M[100][100];
int i,j,k,n;


int main(int argc, char* argv[])
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    
    scanf("%d",&n);
	for(i=0;i<n;i++)
	  for(j=0;j<n;j++)
		scanf("%d",&M[i][j]);

	for(k=0;k<n;k++)
	  for(i=0;i<n;i++)
	    for(j=0;j<n;j++){
	      if( M[i][k] != 0 && M[k][j] != 0 &&
				M[i][j] > (M[i][k] + M[k][j]) )
			M[i][j] = M[i][k] + M[k][j];
		}

	for(i=0;i<n;i++){
		for(j=0;j<n;j++)
			printf("%d ",M[i][j]);
		
		printf("\n");
	}
	
    return 0;
}