Cod sursa(job #1719550)

Utilizator Mihai7Gheoace Mihai Mihai7 Data 19 iunie 2016 15:53:45
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>
using namespace std;
int pond[101][101],n;

void roy_floyd()
{
	short i,j,k;
	for(k=1;k<=n;++k)
		for(i=1;i<=n;++i)
			for(j=1;j<=n;++j)
				if(pond[i][k] && pond[k][j] && (pond[i][j]>pond[i][k]+pond[k][j]||!pond[i][j]) &&i!=j)
					pond[i][j]=pond[i][k]+pond[k][j];
}
int main()
{
	FILE *f=freopen("royfloyd.in","r",stdin),
	*g=freopen("royfloyd.out","w",stdout);
	short i,j;
	scanf("%hd",&n);
	for(i=1;i<=n;++i)
		for( j=1;j<=n;++j)
			scanf("%d",&pond[i][j]);
	roy_floyd();
	for(i=1;i<=n;++i)
		{
			for(j=1;j<=n;++j)
			printf("%d ",pond[i][j]);
		printf("\n");
		}
}