Cod sursa(job #717089)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 19 martie 2012 17:35:20
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#define N 110
#define INF 999999999

using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int n,A[N][N],i,j,k;

void update(int k,int i,int j) {
    if (A[k][i]<=0 || A[k][j]<=0) return;
    if (A[i][j]<=A[k][i]+A[k][j]) return;
    A[i][j]=A[k][i]+A[k][j];
}

int main() {
    f >> n;
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++) f >> A[i][j];
    for (k=1;k<=n;k++)
        for (i=1;i<=n;i++)
            for (j=1;j<=n;j++)
                update(k,i,j);
    for (i=1;i<=n;i++) {
        for (j=1;j<=n;j++) g << A[i][j] << ' ';
        g << '\n';
    }
    f.close();g.close();
    return 0;
}