Pagini recente » Cod sursa (job #2555344) | Cod sursa (job #3139014) | Cod sursa (job #1502958) | Cod sursa (job #1055493) | Cod sursa (job #837907)
Cod sursa(job #837907)
#include <stdio.h>
#define NMAX 105
#define INF 1<<29
int v[NMAX][NMAX];
int n;
void read()
{
scanf ("%d", &n);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
{
scanf ("%d", &v[i][j]);
if (i!=j && v[i][j]==0)
v[i][j]=INF;
}
}
void Royfloyd()
{
for (int k=1;k<=n;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (i!=j && j!=k && i!=k && v[i][j] > v[i][k] + v[k][j])
v[i][j] = v[i][k] + v[k][j];
}
void print()
{
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
if (v[i][j]==INF)
v[i][j]=0;
printf ("%d ", v[i][j]);
}
printf ("\n");
}
}
int main()
{
freopen ("royfloyd.in", "r", stdin);
freopen ("royfloyd.out", "w", stdout);
read();
Royfloyd();
print();
return 0;
}