Cod sursa(job #2102892)

Utilizator pibogaBogdan piboga Data 9 ianuarie 2018 16:17:03
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>

using namespace std;

ifstream fin ("royfloyd.in");
ofstream fout("royfloyd.out");

const int INF=100005;
int nnod,i,j,mid;
int d[105][105];

int main()
{
    fin >> nnod;

    for (i=1;i<=nnod;++i)
    {
        for (j=1;j<=nnod;++j)
        {
            fin >> d[i][j];
            if (!d[i][j])
            {
                d[i][j]=INF;
            }
        }
    }

    for (i=1;i<=nnod;++i)
    {
        d[i][i]=0;
    }

    for (mid=1;mid<=nnod;++mid)
    {
        for (i=1;i<=nnod;++i)
        {
            for (j=1;j<=nnod;++j)
            {
                if ( d[i][j] > d[i][mid] + d[mid][j] )
                {
                    d[i][j]=d[i][mid]+d[mid][j];
                }
            }
        }
    }

    for (i=1;i<=nnod;++i)
    {
        for (j=1;j<=nnod;++j)
        {
            fout << d[i][j] << ' ' ;
        }
        fout << '\n' ;
    }

    return 0;
}