Pagini recente » Cod sursa (job #853218) | Cod sursa (job #2635539) | Cod sursa (job #2000258) | Cod sursa (job #2106263) | Cod sursa (job #2170457)
#include <fstream>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int MAXN = 105;
int n;
int v[MAXN][MAXN];
int main() {
fin >> n;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
fin >> v[i][j];
}
}
for (int var = 1; var <= n; ++var) {
queue<int> q;
q.push(var);
int s[MAXN], viz[MAXN];
for (int i = 1; i <= n; ++i) {
s[i] = 0;
viz[i] = 0;
}
while (!q.empty()) {
int k = q.front();
for (int i = 1; i <= n; ++i) {
if (viz[i] == 0 || s[i] > s[k] + v[k][i]) {
viz[i] = 1;
s[i] = s[k] + v[k][i];
q.push(i);
}
}
q.pop();
}
s[var] = 0;
for (int i = 1; i <= n; ++i) {
fout << s[i] << ' ';
}
fout << '\n';
}
fout.close();
return 0;
}