Cod sursa(job #2551312)

Utilizator RaduZevriRadu Zevri RaduZevri Data 19 februarie 2020 19:03:13
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include<stdio.h>

int main(){
	freopen("royfloyd.in","r",stdin);
	freopen("royfloyd.out","w",stdout);

	int n;
	scanf("%d",&n);
	int mat[n+1][n+1];
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++) scanf("%d",&mat[i][j]);

	for(int k=0;k<n;k++)
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++){
				if(i!=j&&mat[i][k]&&mat[k][j]&&(mat[i][j]>mat[i][k]+mat[k][j]||mat[i][j]==0))
					mat[i][j]=mat[i][k]+mat[k][j];
			}
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++) printf("%d ",mat[i][j]);
		printf("\n");
	}
}