Cod sursa(job #554416)

Utilizator sodamngoodSo Damn Good sodamngood Data 14 martie 2011 20:35:25
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define maxn 128

int N;
int A[maxn][maxn];

int main() {
    FILE *f1=fopen("royfloyd.in", "r"), *f2=fopen("royfloyd.out", "w");
    int i, j, k;

    fscanf(f1, "%d\n", &N);
    for(i=1; i<=N; i++) {
         for(j=1; j<=N; j++) {
              fscanf(f1, "%d", &A[i][j]);
         }
    }

    for(k=1; k<=N; k++) {
         for(i=1; i<=N; i++) {
              for(j=1; j<=N; j++) {
                   if(i != j && A[i][j] > A[i][k] + A[k][j]) {
                        A[i][j] = A[i][k] + A[k][j];
                   }
              }
         }
    }

    for(i=1; i<=N; i++) {
         for(j=1; j<=N; j++) {
              fprintf(f2, "%d ", A[i][j]);
         } fprintf(f2, "\n");
    }

    fclose(f1); fclose(f2);
    return 0;
}