Cod sursa(job #2443814)

Utilizator blotucosmincosmin blotucosmin Data 29 iulie 2019 16:19:11
Problema Floyd-Warshall/Roy-Floyd Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 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 i = 1; i <= n; ++ i)
        for(int j = 1; j <= n; ++ j)
         for(int k = 1; k <= n; ++ k)
          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;
}