Pagini recente » Cod sursa (job #2227982) | Cod sursa (job #191229) | Cod sursa (job #40538) | Cod sursa (job #1712918) | Cod sursa (job #1750529)
#include <fstream>
#define maxn 105
#define inf 1<<30
using namespace std;
int m[maxn][maxn];
int main() {
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int n;
in >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
in >> m[i][j];
if (!m[i][j])
m[i][j] = inf;
}
}
for (int k = 1; k <= n; k++)
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (m[i][k] != inf && m[k][j] != inf && i != j)
m[i][j] = min(m[i][j], m[i][k] + m[k][j]);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (m[i][j] == inf)
out << "0 ";
else
out << m[i][j] << " ";
}
out << "\n";
}
return 0;
}