Cod sursa(job #1378778)

Utilizator pop_bogdanBogdan Pop pop_bogdan Data 6 martie 2015 14:17:07
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
using namespace std;

ifstream is("royfloyd.in");
ofstream os("royfloyd.out");

int N;
int X[101][101], D[101][101];

int main()
{
    is >> N;
    for ( int i = 1; i <= N; ++i )
        for ( int j = 1; j <= N; ++j )
            is >> D[i][j];

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

    for ( int i = 1; i <= N; ++i )
    {
        for ( int j = 1; j <= N; ++j )
            os << D[i][j] << " ";
        os << '\n';
    }
    is.close();
    os.close();
}