Cod sursa(job #145443)
Utilizator | Bogdan-Cristian Tataroiu bogdan2412 | Data | 28 februarie 2008 20:24:04 |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <stdio.h>
#define MAXN 128
#define FOR(i, a, b) for (int (i) = (a); (i) < (int)(b); (i)++)
int N, x[MAXN][MAXN];
int main()
{
freopen("royfloyd.in", "rt", stdin);
freopen("royfloyd.out", "wt", stdout);
scanf("%d", &N);
FOR(i, 0, N) FOR(j, 0, N)
scanf("%d", x[i] + j);
FOR(k, 0, N) FOR(i, 0, N) FOR(j, 0, N)
if (x[i][k] + x[k][j] < x[i][j])
x[i][j] = x[i][k] + x[k][j];
FOR(i, 0, N)
{
FOR(j, 0, N)
printf("%d ", x[i][j]);
printf("\n");
}
return 0;
}