Pagini recente » Cod sursa (job #1706141) | Cod sursa (job #2828956) | Cod sursa (job #2140183) | Cod sursa (job #2140190) | Cod sursa (job #1627993)
#include <iostream>
#include <fstream>
using namespace std;
#define MAX_N 101
const char inFile[] = "royfloyd.in";
const char outFile[] = "royfloyd.out";
short int D[MAX_N][MAX_N];
int N;
inline int minim( int a, int b ){
return a < b ? a : b;
}
void read(){
ifstream fin(inFile);
fin >> N;
for( int i = 1; i <= N; i++ )
for( int j = 1; j <= N; j++ )
fin >> D[i][j];
fin.close();
}
void royfloyd(){
for( int k = 1; k <= N; k++ )
for( int i = 1; i <= N; i++ )
for( int j = 1; j <= N; j++ )
D[i][j] = minim( D[i][j] , ((int)D[i][k]) + D[k][j] );
}
void print(){
ofstream fout(outFile);
for( int i = 1; i <= N; i++ ){
for( int j = 1; j <= N; j++ )
fout << D[i][j] << " ";
fout << "\n";
}
fout.close();
}
int main()
{
read();
royfloyd();
print();
return 0;
}