Pagini recente » Istoria paginii runda/1908 | Cod sursa (job #448407) | Cod sursa (job #1028216) | Cod sursa (job #2217131) | Cod sursa (job #2545421)
#include <fstream>
#include <iomanip>
#include <string>
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <math.h>
#include <set>
#include <map>
#include <string.h>
#include <queue>
#include <stack>
#define INF 0x3f3f3f3f
using namespace std;
#ifdef DEBUG
string name = "data";
#else
string name = "royfloyd";
#endif
ifstream fin(name + ".in");
ofstream fout(name + ".out");
#define MAXN 260
int n;
int a[MAXN][MAXN];
int d[MAXN][MAXN];
//int length[MAXN][MAXN];
int main() {
memset(a, 0x3f, sizeof(a));
fin >> n;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
fin >> a[i][j];
if (i == j) {
d[i][j] = 0;
} else {
d[i][j] = a[i][j];
// length[i][j] = 1;
}
}
}
for (int k = 1; k <= n; ++k) {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
if (i == j) {
continue;
}
// if (k == i || k == j) {
// continue;
// }
if (d[i][k] + d[k][j] <= d[i][j]) {
d[i][j] = d[i][k] + d[k][j];
// length[i][j] = max(length[i][j], length[i][k] + length[k][j]);
}
}
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
fout << d[i][j] << " ";
}
fout << "\n";
}
// for (int i = 1; i <= n; ++i) {
// for (int j = 1; j <= n; ++j) {
// fout << length[i][j] << " ";
// }
// fout << "\n";
// }
return 0;
}