Cod sursa(job #3335864)

Utilizator temp1234Temp Mail temp1234 Data 23 ianuarie 2026 18:49:37
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;

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

int n;
int adj[101][101];
int rf[101][101];

void citire() {
    fin >> n;
    for(int i = 1; i <= n; i ++) {
        for(int j = 1; j <= n; j ++) {
            fin >> adj[i][j];
            rf[i][j] = adj[i][j];
        }
    }
}

void royfloyd() {
    for(int i = 1; i <= n; i ++) {
        for(int j = 1; j <= n; j ++) {
            for(int k = 1; k <= n; k ++) {
                if(rf[i][j] == 0 || rf[i][k] == 0 || rf[k][j] == 0)
                    continue;
                if(rf[i][j] > rf[i][k] + rf[k][j]) {
                    rf[i][j] = rf[i][k] + rf[k][j];
                }
            }
        }
    }

    for(int i = 1; i <= n; i ++, fout << "\n")
        for(int j = 1; j <= n; j ++)
            fout << rf[i][j] << ' ';
}

int main() {
    citire();
    royfloyd();
    return 0;
}