Pagini recente » Cod sursa (job #1022654) | Cod sursa (job #2239042) | Cod sursa (job #850873) | Cod sursa (job #2652925) | Cod sursa (job #1311707)
#include <cstdio>
using namespace std;
int c[102][102];
int main()
{
FILE *in = fopen("royfloyd.in", "r");
FILE *out = fopen("royfloyd.out", "w");
int n;
fscanf(in, "%d", &n);
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
fscanf(in, "%d", &c[i][j]);
for (int k = 1; k <= n; ++k)
for (int i = 1; i <= n; ++i)
if (c[i][k] && k != i)
for (int j = 1; j <= n; ++j)
if (c[k][j] && i != j)
{
if (c[i][j] == 0)
c[i][j] = c[i][k] + c[k][j];
else
if (c[i][j] > c[i][k] + c[k][j])
c[i][j] = c[i][k] + c[k][j];
}
for (int i = 1; i <= n; ++i)
{
fprintf(out, "%d", c[i][1]);
for (int j = 2; j <= n; ++j)
fprintf(out, " %d", c[i][j]);
fprintf(out, "\n");
}
fclose(in);
fclose(out);
return 0;
}