Cod sursa(job #1122605)

Utilizator andreiseiceanSeicean Andrei andreiseicean Data 25 februarie 2014 19:11:49
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
using namespace std;

ifstream f("royfloyd.in"); ofstream g("royfloyd.out");
int a[1002][1002],n;

void citire(){
int i,j;
f>>n;
for (i=1;i<=n;i++)
    for(j=1;j<=n;j++)
        f>>a[i][j];
}

void royfloyd(){
int i,j,p;
for (i=1;i<=n;i++)
    for (j=1;j<=n;j++){
        if (a[i][j]!=0) {
            for (p=1;p<=n;p++){
                if ((a[j][p]!=0)&&(p!=i)&&(a[i][p]>a[i][j]+a[j][p])) {
                    a[i][p]=a[i][j]+a[j][p];
                }
            }
        }
    }
}

void afisare(){
int i,j;
for (i=1;i<=n;i++){
    for(j=1;j<=n;j++)
        g<<a[i][j]<<' ';
    g<<'\n';
    }
}

int main(){
citire();
royfloyd();
afisare();
}