Pagini recente » Cod sursa (job #798333) | Cod sursa (job #3261733) | Cod sursa (job #605142) | Istoria paginii runda/simlotvrancea2010baraj1.1/clasament | Cod sursa (job #1627989)
#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] , 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;
}