Cod sursa(job #1929257)

Utilizator LazarAndreiLazar Andrei Teodor LazarAndrei Data 17 martie 2017 13:13:20
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;

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

#define INF 0x3f3f3f3f;

int N, a[102][102];

void Solve () {
    int k, i, j;
    for (k = 1; k <= N; ++ k) {
        for (i = 1; i <= N; ++ i) {
            for (j = 1; j <= N; ++ j) {
                    if(a[i][j] > a[i][k] + a[k][j])
                       a[i][j] = a[i][k] + a[k][j];

            }
        }
    }

    for (i = 1; i <= N; ++ i) {
        for (j = 1; j <= N; ++ j) {
            out <<  a[i][j] << " ";
        }
        out << '\n';
    }
}

int main()
{
   in >> N;
   for (int i = 1; i <= N; ++ i) {
       for (int j = 1; j <= N; ++ j) {
          in >> a[i][j];
          if (a[i][j] == 0 && i != j)
            a[i][j] = INF;
       }
   }

   Solve ();

   return 0;
}