Pagini recente » Cod sursa (job #2026934) | Cod sursa (job #407104) | Cod sursa (job #2848109) | Cod sursa (job #1103419) | Cod sursa (job #1355803)
#include <cstdio>
#include <cmath>
#include <algorithm>
#define NMAX 100
#define INF 1001
using namespace std;
typedef int ull;
ull d[NMAX][NMAX], mat[NMAX][NMAX];
int N;
void royfloyd() {
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
d[i][j] = mat[i][j];
}
}
for (int k = 0; k < N; ++k) {
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
if (d[i][k] && d[k][j])
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
}
}
}
int main(void) {
FILE * iff = fopen("royfloyd.in","r");
FILE * off = fopen("royfloyd.out","w");
fscanf(iff,"%d",&N);
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
fscanf(iff,"%d",&mat[i][j]);
}
}
royfloyd();
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
fprintf(off,"%d ",d[i][j]);
}
fprintf(off,"\n");
}
return 0;
}