Cod sursa(job #2691565)

Utilizator TaveNeagoe Gabriel-Octavian Tave Data 29 decembrie 2020 11:58:47
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>

using namespace std;

#define inf 10005

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

int rez[1005][1005], mat[1005][1005];

int main()
{
    int n, m, i, j, k, cost;
    fin>>n;

    for(i=0; i<n; i++)
        for(j=0; j<n; j++){

        fin>>cost;

        if(i!=j && cost == 0){
            mat[i][j] = inf;
        }
        else{
            mat[i][j] = cost;
        }
    }

    for(i=0; i<n; i++){
        for(j=0; j<n; j++){
            rez[i][j] = mat[i][j];
        }
    }

    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
            for(k=0; k<n; k++){
                if(rez[j][k] > rez[j][i] + rez[i][k]){
                    rez[j][k] = rez[j][i] + rez[i][k];
                }
            }

    for(i=0; i<n; i++){
        for(j=0; j<n; j++)
            if(rez[i][j] > 1000){
                fout<<0<<" ";
            }
            else{
                fout<<rez[i][j]<<" ";
            }
        fout<<endl;
    }

    return 0;
}