Pagini recente » Cod sursa (job #1710088) | Cod sursa (job #2049134) | Cod sursa (job #1699298) | Cod sursa (job #2625058) | Cod sursa (job #1509937)
#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++)
if (i==j) c[i][j]=0;
else c[i][j]=INF;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
f>>c[i][j];
}
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;
}