Pagini recente » Cod sursa (job #826479) | Cod sursa (job #261411) | Borderou de evaluare (job #1379244) | Cod sursa (job #1146862) | Cod sursa (job #3237520)
#include <bits/stdc++.h>
using namespace std;
ifstream fin( "royfloyd.in" );
ofstream fout( "royfloyd.out" );
const int DIM = 101;
const int INF = 1e9;
int dist[DIM][DIM];
int main() {
ios_base::sync_with_stdio(0);
fin.tie(0);
int n;
fin >> n;
for ( int i = 1; i <= n; ++i ) {
for ( int j = 1; j <= n; ++j ) {
fin >> dist[i][j];
dist[i][j] = (i != j && dist[i][j] == 0 ? INF : dist[i][j]);
}
}
for ( int k = 1; k <= n; ++k ) {
for ( int i = 1; i <= n; ++i ) {
for ( int j = 1; j <= n; ++j ) {
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
}
}
}
for ( int i = 1; i <= n; ++i ) {
for ( int j = 1; j <= n; ++j ) {
fout << (dist[i][j] == INF ? 0 : dist[i][j]) << " ";
}
fout << "\n";
}
fin.close();
fout.close();
return 0;
}