Pagini recente » Cod sursa (job #864499) | Cod sursa (job #70157) | Cod sursa (job #360787) | Cod sursa (job #2974013) | Cod sursa (job #2199236)
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int N;
int mat[102][102];
void Read()
{
fin>>N;
for(int i=1; i<=N; ++i)
for(int j=1; j<=N; ++j)
{ fin>>mat[i][j];
// if(mat[i][j]==0) mat[i][j]=999999;
}
fin.close();
}
void Do()
{
for(int k=1; k<=N; ++k)
for(int i=1; i<=N; ++i)
for(int j=1; j<=N; ++j)
if(mat[i][k]!=0 && mat[k][j]!=0 && ( ( mat[i][j]==0 && i!=j) || ( mat[i][j] > mat[i][k] + mat[k][j] && i!=j)))
mat[i][j]=mat[i][k]+mat[k][j];
}
void Print()
{
for(int i=1; i<=N; ++i)
{
for(int j=1; j<=N; ++j)
fout<<mat[i][j]<<' ';
fout<<'\n';
}
fout.close();
}
int main()
{
Read();
Do();
Print();
return 0;
}