Pagini recente » Cod sursa (job #2013790) | Monitorul de evaluare | Cod sursa (job #1537598) | Diferente pentru home intre reviziile 570 si 902 | Cod sursa (job #492087)
Cod sursa(job #492087)
#include <iostream>
#include <stdio.h>
#define INF 0xf3f3f3f
#define Max 110
using namespace std;
int a[Max][Max], N;
void read()
{
freopen ("royfloyd.in","r",stdin);
freopen ("royfloyd.out","w",stdout);
scanf("%d",&N);
for(int i = 1; i <= N; i++)
for(int j = 1; j <= N; j++)
{
scanf("%d",&a[i][j]);
if(!a[i][j])
a[i][j] = INF;
}
}
void royfloyd()
{
int t;
for(int k = 1; k <= N; k++)
for(int i = 1; i <= N; i++)
for(int j = 1; j <= N; j++)
a[i][j] = (a[i][j] > (t = a[i][k] + a[k][j]))?t:a[i][j];
}
void write()
{
for(int i = 1; i <= N; i++)
{
for(int j = 1; j <= N; j++)
if(a[i][j] == INF || i == j)
printf("0 ");
else printf("%d ",a[i][j]);
printf("\n");
}
}
int main()
{
read();
royfloyd();
write();
return 0;
}