Pagini recente » Cod sursa (job #3222868) | Cod sursa (job #204597) | Teroristi2 | Cod sursa (job #155079) | Cod sursa (job #1296744)
#include <cstdio>
#define MAX_SIZE 101
#define MAXA 1000
using namespace std;
const char iname[] = "royfloyd.in";
const char oname[] = "royfloyd.out";
int N, RF[MAX_SIZE][MAX_SIZE];
inline void Read() {
FILE *in = fopen(iname, "r");
fscanf(in, "%d", &N);
for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++) {
fscanf(in, "%d", &RF[i][j]);
if (RF[i][j] == 0) RF[i][j] = MAXA + 1;
}
fclose(in);
}
inline 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 && RF[i][j] > RF[i][k] + RF[k][j])
RF[i][j] = RF[i][k] + RF[k][j];
}
}
inline void Write() {
FILE *out = fopen(oname, "w");
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++)
fprintf(out, "%d ", RF[i][j] < MAXA ? RF[i][j] : 0);
fprintf(out, "\n");
}
fclose(out);
}
int main() {
Read();
Solve();
Write();
return 0;
}