Pagini recente » Cod sursa (job #1990966) | Cod sursa (job #2084952) | Cod sursa (job #985375) | Cod sursa (job #2490090) | Cod sursa (job #2841457)
#include <fstream>
#define FOR(i, a, b) for (i = (a); i <= (b); ++i)
using namespace std;
const char InPut[] = "royfloyd.in";
const char OutPut[] = "royfloyd.out";
int n, a[105][105], i, j, k;
void citire();
void royFloyd();
void tipar();
int main() {
citire();
royFloyd();
tipar();
}
void citire()
{
ifstream f(InPut);
f >> n;
FOR(i, 1, n)
FOR(j, 1, n) f >> a[i][j];
}
void royFloyd()
{
FOR(k, 1, n)
FOR(i, 1, n)
FOR(j, 1, n)
if (a[i][k] and a[k][j] and (a[i][j] > a[i][k] + a[k][j] or !a[i][j]) and i != j) a[i][j] = a[i][k] + a[k][j];
}
void tipar()
{
ofstream g(OutPut);
FOR(i, 1, n) {
FOR(j, 1, n) g << a[i][j] << ' ';
g << '\n';
}
}