Pagini recente » Cod sursa (job #1064124) | Cod sursa (job #845178) | Cod sursa (job #1021006) | Cod sursa (job #959200) | Cod sursa (job #3260132)
#include <fstream>
using namespace std;
ifstream cin ("royfloyd.in");
ofstream cout ("royfloyd.out");
int n,M[110][110],D[110][110];
int main()
{
cin>>n;
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++)
cin>>M[i][j];
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++)
if (i==j || M[i][j]) D[i][j]=M[i][j];
else D[i][j]=1000000000;
for (int k=1; k<=n; k++)
for (int i=1; i<=n; i++)
for (int j=1; j<=n; j++)
if (D[i][k]!=1000000000 && D[k][j]!=1000000000) D[i][j]=min(D[i][j],D[i][k]+D[k][j]);
for (int i=1; i<=n; i++,cout<<'\n')
for (int j=1; j<=n; j++)
cout<<D[i][j]<<" ";
return 0;
}