Pagini recente » Cod sursa (job #2835716) | Cod sursa (job #1817534) | Cod sursa (job #3221427) | Cod sursa (job #2934756) | Cod sursa (job #2947477)
#include <iostream>
#include <vector>
#include <queue>
#define MAXN 100
#define INF 1000000000
using namespace std;
int dist[MAXN][MAXN];
int main() {
FILE *fin, *fout;
fin = fopen("royfloyd.in", "r");
fout = fopen("royfloyd.out", "w");
int n, l, c, i, i2, i3;
fscanf(fin, "%d", &n);
for ( l = 0; l < n; l++ ) {
for ( c = 0; c < n; c++ ) {
fscanf(fin, "%d", &dist[l][c]);
if ( !dist[l][c] )
dist[l][c] = INF;
if ( l == c )
dist[l][c] = 0;
}
}
for ( i = 0; i < n; i++ ) {
for ( i2 = 0; i2 < n; i2++ ) {
for ( i3 = 0; i3 < n; i3++ ) {
dist[i][i2] = min(dist[i][i2], dist[i][i3] + dist[i3][i2]);
}
}
}
for ( l = 0; l < n; l++ ) {
for ( c = 0; c < n; c++ ) {
if ( dist[l][c] == INF )
dist[l][c] = 0;
fprintf(fout, "%d ", dist[l][c]);
}
fprintf(fout, "\n");
}
fclose(fin);
fclose(fout);
return 0;
}