Cod sursa(job #1518019)

Utilizator eden001Muntean Natan eden001 Data 5 noiembrie 2015 10:37:29
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
int a[100][100];
int n;
void citeste(){
    ifstream f("royfloyd.in");
    f>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
            f>>a[i][j];
            if(a[i][j]==0&&i!=j)a[i][j]=1001;}
}
void royfloyd(){
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(a[i][k]+a[k][j]<a[i][j])a[i][j]=a[i][k]+a[k][j];
}
void scrie(){
    ofstream f("royfloyd.out");
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(a[i][j]!=1001)f<<a[i][j]<<" ";
            else f<<0<<" ";}
        f<<endl;}
    f.close();
}
int main(){
    citeste();
    royfloyd();
    scrie();
    return 0;
}