Cod sursa(job #2953160)

Utilizator maiaauUngureanu Maia maiaau Data 10 decembrie 2022 16:27:23
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;

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

const int oo = 1e6;

int ad[105][105], n;
void read(), prt(), rfw();

int main()
{
    read();
    rfw();
    prt();
    return 0;
}

void read(){
    f >> n;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++){
            f >> ad[i][j];
            if (!ad[i][j] && i != j) ad[i][j] = oo;
        }
}
void prt(){
    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= n; j++)
            g << (ad[i][j] == oo ? 0 : ad[i][j]) << ' ';
        g << '\n';
    }
}
void rfw(){
    for (int k = 1; k <= n; k++)
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                ad[i][j] = min(ad[i][j], ad[i][k] + ad[k][j]);
}