Pagini recente » Cod sursa (job #1890462) | Cod sursa (job #2888423) | Cod sursa (job #218962) | Cod sursa (job #3195558) | Cod sursa (job #2545422)
#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(d, 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;
}