Cod sursa(job #1239570)

Utilizator ConstantinPetroviciPetrovici Constantin ConstantinPetrovici Data 9 octombrie 2014 12:07:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

int mat[107][107] , n ;

int main()
{
    ifstream cin ("royfloyd.in");
    ofstream cout ("royfloyd.out");
    cin>>n;
    for ( int i = 1 ; i <= n ; ++i )
        for ( int j = 1 ; j <= n ; ++j )
            cin>>mat[i][j];
    for ( int k = 1 ; k <= n ; ++k )
        for ( int i = 1 ; i <= n ; ++i )
            for ( int j = 1 ; j <= n ; ++j )
                if ((((mat[i][k]+mat[k][j])<mat[i][j])||(!mat[i][j]))&&(i!=j)&&(mat[i][k])&&(mat[k][j]))
                    mat[i][j]=mat[i][k]+mat[k][j];
    for ( int i = 1 ; i <= n ; ++i )
        {
            for ( int j = 1 ; j <= n ; ++j )
                cout<<mat[i][j]<<" ";
            cout<<endl;
        }

    return 0;
}