Cod sursa(job #3264643)

Utilizator Manolea_Teodor_StefanManolea Teodor Stefan Manolea_Teodor_Stefan Data 22 decembrie 2024 21:48:27
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <bits/stdc++.h>
//#pragma GCC optimize("O3,unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")


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

const int inf = INT_MAX;

int n;

long long arr[101][101];

int main() {
    fin >> n;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            fin >> arr[i][j];
        }
    }

    for (int k = 1; k <= n; k++) {
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= n; j++) {
                if (i != j and j != k) {
                    if (arr[i][k] != inf and arr[k][j] != inf) {
                        arr[i][j] = min(arr[i][j],arr[i][k] + arr[k][j]);
                    }
                }
            }
        }
    }
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (arr[i][j] == inf) {
                fout << 0;
            } else {
                fout << arr[i][j];
            }
            fout << ' ';
        }
        fout << '\n';
    }

    return 0;
}