Cod sursa(job #700422)

Utilizator algotrollNume Fals algotroll Data 1 martie 2012 10:16:15
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<cstdio>
#define _NMAX 110
#define INF 1<<29
using namespace std;

int nN, mAd[_NMAX][_NMAX];
int main()
{
    FILE *f=fopen("royfloyd.in", "r");
    fscanf(f,"%d", &nN);
    for (int i=1;i<=nN;i++)
        for (int j=1;j<=nN;j++)
        {
            fscanf(f, "%d", &mAd[i][j]);
            if (mAd[i][j]==0) mAd[i][j]=INF;
        }
    for (int k=1;k<=nN;k++)
        for (int i=1;i<=nN;i++)
            for (int j=1;j<=nN;j++)
                if (mAd[i][j]>mAd[i][k]+mAd[k][j])
                    mAd[i][j]=mAd[i][k]+mAd[k][j];
    f=fopen("royfloyd.out", "w");
    for (int i=1;i<=nN;i++)
    {
        for (int j=1;j<=nN;j++)
            fprintf(f,"%d ", mAd[i][j]==INF?0 :mAd[i][j]);
        fprintf(f,"\n");
    }
}