Pagini recente » Cod sursa (job #1841018) | Cod sursa (job #3231058) | Cod sursa (job #2899515) | Cod sursa (job #2337524) | Cod sursa (job #1228761)
#include <cstdio>
using namespace std;
int n,sol[105][105][2];
int main()
{
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",&sol[i][j][0]);
}
}
for (int k=1;k<=n;++k)
{
int pas1,pas2;
pas1=k%2;
pas2=(k+1)%2;
for (int i=1;i<=n;++i)
{
for (int j=1;j<=n;++j)
{
if (i!=j)
{
sol[i][j][pas1]=sol[i][j][pas2];
if (sol[i][k][pas2]!=0 && sol[k][j][pas2]!=0) if (sol[i][k][pas2]+sol[k][j][pas2]<sol[i][j][pas1] || sol[i][j][pas1]==0) sol[i][j][pas1]=sol[i][k][pas2]+sol[k][j][pas2];
}
}
}
}
int pas=n%2;
for (int i=1;i<=n;++i)
{
for (int j=1;j<=n;++j)
{
printf("%d ",sol[i][j][pas]);
}
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}