Pagini recente » Cod sursa (job #1955757) | Cod sursa (job #1429451) | Cod sursa (job #1534199) | Cod sursa (job #2855780) | Cod sursa (job #2552656)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n, mt[105][105];
void read() {
fin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
fin >> mt[i][j];
}
void roy_floyd() {
for (int k = 0; k < n; k++)
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if ((mt[i][j] == 0 || mt[i][k] + mt[k][j] < mt[i][j]) && i != j && mt[i][k] && mt[k][j])
mt[i][j] = mt[i][k] + mt[k][j];
}
void show() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
fout << mt[i][j] << " ";
fout << "\n";
}
}
int main(int argc, const char * argv[]) {
read();
roy_floyd();
show();
}