Pagini recente » Istoria paginii summer-challenge-2009/clasament/runda-2 | Cod sursa (job #679898) | Cod sursa (job #2985791) | Cod sursa (job #218036) | Cod sursa (job #533090)
Cod sursa(job #533090)
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE *in = freopen("royfloyd.in", "r", stdin);
FILE *out = freopen("royfloyd.out", "w", stdout);
int n, i, j, k;
int* m;
fscanf(in, "%d", &n);
m = calloc(n*n, sizeof (m));
for (i = 0; i < n * n; i++) fscanf(in, "%d", m + i);
for (k = 0; k < n; k++)
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (m[i * n + k] && m[k * n + j] && (m[i * n + k] + m[k * n + j] < m[i * n + j])) {
m[i * n + j] = m[i * n + k] + m[k * n + j];
}
for (i = 0; i < n * n; i++) {
fprintf(out, "%d ", *(m + i));
if (i % n == n - 1)
fprintf(out, "\n");
}
free(m);
return EXIT_SUCCESS;
}