Pagini recente » Cod sursa (job #1793360) | Cod sursa (job #2938209) | Cod sursa (job #687634) | Cod sursa (job #720220) | Cod sursa (job #2198484)
#include <fstream>
using namespace std;
int N;
int adj[101][101];
int dist[101][101];
void reader() {
ifstream fin("royfloyd.in");
fin >> N;
for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++) {
fin >> adj[i][j];
dist[i][j] = adj[i][j];
if (dist[i][j] == 0 && i != j) dist[i][j] = -1;
}
}
void alg() {
for (int k = 1; k <= N; k++) {
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= N; j++) {
int d1 = dist[i][j];
int d2 = dist[i][k] + dist[k][j];
if (d1 == -1 || d2 < d1) dist[i][j] = d2;
}
}
}
for (int i = 1; i <= N; i++) dist[i][i] = 0;
}
void writer() {
ofstream fout("royfloyd.out");
for (int i = 1; i <= N; i++) {
for (int j = 1; j < N; j++) fout << dist[i][j] << ' ';
fout << dist[i][N] << '\n';
}
}
int main() { reader(); alg(); writer(); }