Cod sursa(job #1971340)

Utilizator Wh1plashOvidiu Taralesca Wh1plash Data 20 aprilie 2017 12:16:41
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int a[101][101], n;
void citire(){
    int i, j;
    in >> n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            in >> a[i][j];
}
void fw(){
    int i, j, k;
    for(k=1;k<=n;k++){
        for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
            if(i!=j && i!=k && j!=k && a[i][k]!=0 && a[k][j]!=0 && (a[i][j] > a[i][k]+a[k][j]))
                a[i][j] = a[i][k]+a[k][j];
        }
    }
}
void afisare(){
    int i, j;
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++)
            out << a[i][j] << ' ';
        out << '\n';
    }
}
int main()
{
    citire();
    fw();
    afisare();
    return 0;
}