Pagini recente » Cod sursa (job #483301) | Cod sursa (job #1027348) | Cod sursa (job #2842788) | Cod sursa (job #597677) | Cod sursa (job #1430861)
#include <iostream>
#include <vector>
#include <fstream>
#include <stdio.h>
using namespace std;
int a[100][100];
int min (int a, int b) {
if (!a)
return b;
if (!b)
return a;
return (a > b)? b : a;
}
int main()
{
freopen("royfloyd.in", "rt", stdin);
freopen("royfloyd.out", "wt", stdout);
int n;
cin >> n;
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
cin >> a[i][j];
for (int k = 0; k < n; ++k)
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
if (i != j && a[i][k] && a[k][j])
a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j)
cout << a[i][j] << " ";
cout << endl;
}
return 0;
}