Pagini recente » Cod sursa (job #854053) | Cod sursa (job #1063963) | Cod sursa (job #1761521) | Cod sursa (job #1530024) | Cod sursa (job #341698)
Cod sursa(job #341698)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
using namespace std;
#define mp make_pair
#define pb push_back
#define sz(c) (int)((c).size())
#define f first
#define s second
#define fin "royfloyd.in"
#define fout "royfloyd.out"
#define NMAX 101
int N, d[NMAX][NMAX];
void ReadData()
{
ifstream f(fin);
f >> N;
for ( int i = 1; i <= N; ++i )
for ( int j = 1; j <= N; ++j )
f >> d[i][j];
f.close();
}
void Solve()
{
for ( int k = 1; k <= N; ++k )
for ( int i = 1; i <= N; ++i )
for ( int j = 1; j <= N; ++j )
if ( i != j && d[i][k] && d[k][j] && ( d[i][j] == 0 || d[i][j] > d[i][k] + d[k][j] ) )
d[i][j] = d[i][k] + d[k][j];
}
void PrintSol()
{
ofstream f(fout);
for ( int i = 1; i <= N; ++i )
{
for ( int j = 1; j <= N; ++j )
f << d[i][j] << " ";
f << endl;
}
f.close();
}
int main()
{
ReadData();
Solve();
PrintSol();
return 0;
}