Pagini recente » Cod sursa (job #2467765) | Cod sursa (job #1286425) | Cod sursa (job #2064467) | Cod sursa (job #1787702) | Cod sursa (job #2404033)
#include <algorithm>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");
const int Dim = 101,Inf = 0x3f3f3f3f;
int A[Dim][Dim],D[Dim][Dim],n;
int main() {
fin >> n;
for ( int i = 1; i <= n; ++i)
for ( int j = 1; j <= n; ++j)
fin >> A[i][j];
for ( int i= 1; i <= n;++i)
for ( int j = 1; j <= n; ++j)
D[i][j] = Inf;
for ( int i = 1; i <= n; ++i)
for ( int j = 1; j <= n; ++j)
if ( A[i][j] != 0)
D[i][j] = A[i][j];
for( int k = 1; k <= n; ++k)
for ( int i = 1; i <= n; ++i)
for ( int j = 1; j <= n; ++j)
if ( i != k and j != k and i != j and D[i][j] > D[i][k] + D[k][j] )
D[i][j] = D[i][k] + D[k][j];
for( int i = 1 ; i <= n; ++i,fout << "\n")
for ( int j = 1; j <= n; ++j)
if ( D[i][j] == Inf or i == j)
fout << 0 << " ";
else
fout << D[i][j] << " ";
}