Pagini recente » Cod sursa (job #1671741) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #756888) | Cod sursa (job #2008468)
#include <iostream>
#include <cstdio>
using namespace std;
const int inf = 0x3f3f3f3f;
int rf[105][105], N;
void Read()
{
scanf("%d", &N);
for(int i=1; i<=N; ++i)
{
for(int j=1; j<=N; ++j)
{
scanf("%d", &rf[i][j]);
if(i!=j && !rf[i][j])
rf[i][j] = inf;
}
}
}
void Roy()
{
for(int k=1; k<=N; ++k)
for(int i=1; i<=N; ++i)
for(int j=1; j<=N; ++j)
if(i!=j && k!=i && k!=j && rf[i][k] + rf[k][j] < rf[i][j])
rf[i][j] = rf[i][k] + rf[k][j];
}
void Print()
{
for(int i=1; i<=N; ++i)
{
for(int j=1; j<=N; ++j)
{
printf("%d ", rf[i][j]);
}
printf("\n");
}
}
int main()
{
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
Read();
Roy();
Print();
return 0;
}