Cod sursa(job #901798)
#include<iostream>
#include<fstream>
#define inf1 10000001;
using namespace std;
int a[1000][1000],n;
ifstream in("royfloyd.out");
ofstream out("royfloyd.out");
int main()
{
in>>n;
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
{in>>a[i][j];
if (a[i][j]==0) a[i][j]=inf1;
}
for (int k=1;k<=n;++k)
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
if (i!=j&&a[i][k]&&a[k][j])
if (a[i][j]>a[i][k]+a[k][j] || !a[i][j]) a[i][j]=a[i][k]+a[k][j];
for (int i=1;i<=n;++i)
{
for (int j=1;j<=n;++j)
if (a[i][j]!=10000001) out<<a[i][j]<<" ";
else out<<0<<" ";
out<<'\n';
}
return 0;
}