Cod sursa(job #2443815)

Utilizator blotucosmincosmin blotucosmin Data 29 iulie 2019 16:20:53
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#define NMAX 1005
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int c[101][101],i,j,n;
void Roy_Floyd()
{
    for(int k = 1; k <= n; ++ k)
        for(int i = 1; i <= n; ++ i)
            for(int j = 1; j <= n; ++ j)
                if(c[i][k] != NMAX && c[k][j] != NMAX && c[i][j] > c[i][k] + c[k][j] && i != j)
                    c[i][j] = c[i][k] + c[k][j];
}
int main()
{
    f >> n;
    for(i = 1; i <= n; ++ i)
        for(j = 1; j <= n; ++ j)
        {
            f >> c[i][j];
            if(c[i][j] == 0) c[i][j] = NMAX;
        }
    Roy_Floyd();
    for(i = 1; i <= n; ++ i)
    {
        for(j = 1; j <= n; ++ j)
            if(c[i][j] == NMAX) g << "0" << " ";
            else g << c[i][j] << " ";
        g << "\n";
    }
    return 0;
}