Cod sursa(job #1854259)

Utilizator mihnea00Duican Mihnea mihnea00 Data 22 ianuarie 2017 15:27:07
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

int n,i,k,j,mix,v[1000][1000];

void royfloyd()
{
    int i,j,k;
    for(k=1;k<=n;++k)
    {
        for(i=1;i<=n;++i)
        {
            for(j=1;j<=n;++j)
            {
                if(i!=j && i!=k && j!=k)
                    v[i][j]=min(v[i][j],v[i][k]+v[k][j]);
            }
        }
    }
}

int main()
{
    fin>>n;
    mix=200000000;
    for(i=1;i<=n;++i)
    {
        for(j=1;j<=n;++j)
        {
            fin>>v[i][j];
            if(v[i][j]==0)
                v[i][j]=200000000;
        }
    }

    royfloyd();

    for(i=1;i<=n;++i)
    {
        for(j=1;j<=n;++j)
        {
            if(v[i][j]==mix)
                v[i][j]=0;
            fout<<v[i][j]<<" ";
        }
        fout<<"\n";
    }

    return 0;
}