Cod sursa(job #370476)

Utilizator vladiiIonescu Vlad vladii Data 1 decembrie 2009 13:23:19
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
int main() {
    fstream f1, f2;
    int i, j, k, n, mat[150][150];
    f1.open("royfloyd.in", ios::in);
    f1>>n;
    for(i=1; i<=n; i++) {
         for(j=1; j<=n; j++) {
              f1>>mat[i][j];
         }
    }
    f1.close();
    for(k=1; k<=n; k++) {
         for(i=1; i<=n; i++) {
              for(j=1; j<=n; j++) {
                   if(mat[i][k] && mat[k][j] && i!=j && (mat[i][j]>mat[i][k]+mat[k][j] || !mat[i][j])) {
                        mat[i][j]=mat[i][k]+mat[k][j];
                   }
              }
         }
    }
    f2.open("royfloyd.out", ios::out);
    for(i=1; i<=n; i++) {
         for(j=1; j<=n; j++) {
              f2<<mat[i][j]<<" ";
         }
         f2<<endl;
    }
    f2.close();
    return 0;
}