Pagini recente » Cod sursa (job #1759518) | Cod sursa (job #2447766) | Cod sursa (job #1258252) | Cod sursa (job #824664) | Cod sursa (job #425944)
Cod sursa(job #425944)
#include <cstdio>
int n;
int mat[101][101],roy[101][101];
int min (int a,int b)
{
if (a<b)
return a;
return b;
}
void citire()
{
scanf("%d",&n);
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
{
scanf("%d",&mat[i][j]);
if (i==j)
{
roy[i][j]=0;
continue;
}
if (mat[i][j]==0)
roy[i][j]=1<<29;
else
roy[i][j]=mat[i][j];
}
}
void scrie()
{
for (int i=1;i<=n;++i)
{
for (int j=1;j<=n;++j)
if (roy[i][j]==1<<30)
printf("%d",0);
else
printf("%d ",roy[i][j]);
printf("\n");
}
}
int main()
{
freopen ("royfloyd.in","r",stdin);
freopen ("royfloyd.out","w",stdout);
citire();
for (int k=1;k<=n;++k)
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
{
roy[i][j]=min(roy[i][j],roy[i][k]+roy[k][j]);
}
scrie();
return 0;
}