Pagini recente » Cod sursa (job #157871) | Cod sursa (job #2811768) | Cod sursa (job #548929) | Cod sursa (job #2674153) | Cod sursa (job #396891)
Cod sursa(job #396891)
#include <cstdio>
#define DIM 105
int a[DIM][DIM], n;
const int INF = (1<<30);
int min(const int a, const int b)
{
return a<b ? a : b;
}
void royfloyd()
{
for (int k = 1; k <= n; ++k)
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
}
int main()
{
FILE *f = fopen("royfloyd.in", "r");
fscanf(f, "%d", &n);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
{
fscanf (f, "%d", &a[i][j]);
if (!a[i][j] && i != j) a[i][j] = INF;
}
fclose(f);
royfloyd();
f = fopen("royfloyd.out", "w");
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)
fprintf (f, "%d ", a[i][j]==INF?0:a[i][j]);
fprintf (f, "\n");
}
fclose(f);
return 0;
}