Pagini recente » Cod sursa (job #584349) | Cod sursa (job #1654606) | Cod sursa (job #1901784) | Cod sursa (job #783229) | Cod sursa (job #634509)
Cod sursa(job #634509)
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define maxn 101
int N, D[maxn][maxn];
void royfloyd(void)
{
int i,j,k;
for(k=1;k<=N;k++)
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
if (D[i][k] && D[k][j] && (D[i][j] > D[i][k] + D[k][j] || !D[i][j]) && i != j)
D[i][j] = D[i][k] + D[k][j];
}
int main (void)
{
freopen("royfloyd.in","r",stdin);
scanf("%d",&N);
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
scanf("%d",&D[i][j]);
royfloyd();
freopen("royfloyd.out","w",stdout);
for(int i=1;i<=N;i++)
{for(int j=1;j<=N;j++) printf("%d ",D[i][j]);
printf("\n");}
return 0;
}