Pagini recente » Cod sursa (job #2153048) | Cod sursa (job #1125145) | Cod sursa (job #1303767) | Cod sursa (job #1248092) | Cod sursa (job #1509944)
#include <iostream>
#include <fstream>
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n,c[101][101],d[101][101];
void citire_c()
{
int i,j,cost;
f>>n;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
f>>c[i][j];
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (i==j) c[i][j]=0;
else if (i!=j && c[i][j]==0) c[i][j]=INF;
}
void int_d ()
{
int i,j;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (i==j || c[i][j]==INF) d[i][j]=0;
else d[i][j]=i;
}
void roy_floyd()
{
int i,j,k;
for (k=1;k<=n;k++)
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (c[i][k]+c[k][j]<c[i][j])
{
c[i][j]=c[i][k]+c[k][j];
d[i][j]=d[k][j];
}
}
int main()
{
int i,j;
citire_c();
int_d();
roy_floyd();
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
g<<c[i][j]<<" ";
g<<'\n';
}
return 0;
}