Cod sursa(job #1181205)

Utilizator SilverGSilver Gains SilverG Data 2 mai 2014 02:31:42
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
/*
    Keep It Simple!
*/

#include<fstream>
using namespace std;

#define MaxN 105
#define inf 1<<30

int M[MaxN][MaxN],N;

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

    f >> N;

    for(int i=1;i<=N;i++)
    for(int j=1;j<=N;j++)
    {
        f >> M[i][j];
        if(!M[i][j]) M[i][j] = inf;
    }

    for(int k=1;k<=N;k++)
        for(int i=1;i<=N;i++)
            for(int j=1;j<=N;j++)
            {
                if(i != j && M[i][j] > M[i][k]+M[k][j])
                    M[i][j] = M[i][k] + M[k][j];
            }

    for(int i=1;i<=N;i++)
    {
        for(int j=1;j<=N;j++)
            {
            if(M[i][j] == inf)
                M[i][j] = 0;
            g << M[i][j] << " ";
            }
        g<<"\n";
    }
    f.close();
    g.close();
    return 0;
}