Mai intai trebuie sa te autentifici.
Cod sursa(job #2755484)
| Utilizator | Data | 27 mai 2021 14:34:13 | |
|---|---|---|---|
| Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.95 kb |
#include <bits/stdc++.h>
using namespace std;
#define NMAX 102
#define INF (1 << 15)
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int N;
int w[NMAX][NMAX];
int d[NMAX][NMAX];
int main() {
int x, y;
fin >> N;
for (x = 1; x <= N; ++x) {
for (y = 1; y <= N; ++y) {
fin >> w[x][y];
if (x != y && w[x][y] == 0) {
d[x][y] = INF;
} else {
d[x][y] = w[x][y];
}
}
}
int k;
for (k = 1; k <= N; ++k) {
for (x = 1; x <= N; ++x) {
for (y = 1; y <= N; ++y) {
d[x][y] = min(d[x][y],
d[x][k] + d[k][y]);
}
}
}
for (x = 1; x <= N; ++x) {
for (y = 1; y <= N; ++y) {
if (d[x][y] == INF) {
d[x][y] = 0;
}
fout << d[x][y] << " ";
}
fout << "\n";
}
return 0;
}
