Cod sursa(job #3238487)

Utilizator Traian_7109Traian Mihai Danciu Traian_7109 Data 25 iulie 2024 19:44:03
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>

static inline int min(int a, int b) {
  return a < b ? a : b;
}

#define MAXN 100

int mat[MAXN][MAXN];

int main() {
  int n, i, j, k;
  
  #ifndef LOCAL
    freopen("royfloyd.in", "r", stdin);
    freopen("royfloyd.out", "w", stdout);
  #endif
  
  scanf("%d", &n);
  for(i = 0; i < n; i++) {
    for(j = 0; j < n; j++) {
      scanf("%d", &mat[i][j]);
    }
  }
  
  for(i = 0; i < n; i++) {
    for(j = 0; j < n; j++) {
      for(k = 0; k < n; k++) {
        mat[i][j] = min(mat[i][j], mat[i][k] + mat[k][j]);
      }
      printf("%d ", mat[i][j]);
    }
    fputc('\n', stdout);
  }
  
  return 0;
}