Cod sursa(job #642060)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 30 noiembrie 2011 15:32:44
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>

int n,k,i,j,v[101][101],m[101][101];

int main()
{
	freopen("royfloyd.in","r",stdin);
	freopen("royfloyd.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			scanf("%d",&v[i][j]);
			if(v[i][j]==0 && i != j){
				v[i][j]=1000000;
			}
		}
	}
	for(k=1;k<=n;k++){
		for(i=1;i<=n;i++){
			for(j=1;j<=n;j++){
				if(v[i][j]>v[i][k]+v[k][j]){
					v[i][j]=v[i][k]+v[k][j];
				}
			}
		}
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(v[i][j]<1000000){
				printf("%d ",v[i][j]);
			}else{
				printf("0 ");
			}
		}
		printf("\n");
	}
	return 0;
}