Pagini recente » Monitorul de evaluare | Cod sursa (job #1666192) | test41241 | Cod sursa (job #783968) | Cod sursa (job #2373840)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int NMAX = 802;
const int INF = ( 1 << 30) - 1;
int N;
int mat[NMAX][NMAX];
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] && i != j )
mat[i][j]=INF;
}
fin.close();
}
void RF()
{
for(int k=1;k<=N;++k)
for(int i=1;i<=N;++i)
for(int j=1;j<=N;++j)
if(mat[i][j]>mat[i][k]+mat[k][j])mat[i][j]=mat[i][k]+mat[k][j];
for(int i=1;i<=N;++i)
{
for(int j=1;j<=N;++j)
fout<<mat[i][j]<<" ";
fout<<"\n";
}
}
int main()
{
Read();
RF();
return 0;
}