Pagini recente » Cod sursa (job #323918) | Monitorul de evaluare | Cod sursa (job #2053792) | Cod sursa (job #2975129) | Cod sursa (job #1161129)
#include <iostream>
#include <fstream>
using namespace std;
int a[101][101],n,x,y;
const unsigned int INF=999999;
void in(int n)
{
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
if(i==j)a[i][j]=0;
else a[i][j]=INF;
}
}
void citire()
{
int x,i,j;
ifstream fin("royfloyd.in");
fin>>n;
in(n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
fin>>x;
if(i!=j)a[i][j]=x;
}
fin.close();
}
void roy_floid()
{
int k,i,j;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]>a[i][k]+a[k][j])a[i][j]=a[i][k]+a[k][j];
}
void afis()
{
int i,j;
ofstream fout("royfloyd.out");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(a[i][j]!=INF)fout<<a[i][j]<<" ";
else fout<<0;
}
fout<<endl;
}
fout.close();
}
int main()
{
citire();
roy_floid();
afis();
return 0;
}