Cod sursa(job #3271955)

Utilizator ShAwDoRneYNacu Gabriel ShAwDoRneY Data 27 ianuarie 2025 21:30:29
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <vector>

using namespace std;

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

void Floyd_Warshall(int noNodes, vector<vector<int> > &arr) {

    for(int k=1; k<=noNodes; k++) {
        for(int i=1; i<=noNodes; i++) {
            for(int j=1; j<=noNodes; j++) {
                if(arr[i][j] > arr[i][k] + arr[k][j])
                    arr[i][j] = arr[i][k] + arr[k][j];
            }
        }
    }
}

int main() {

    int noNodes;

    fin >> noNodes;

    vector<vector<int> > arr(noNodes+1, vector<int>(noNodes+1));

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

    Floyd_Warshall(noNodes, arr);

    for(int i=1; i<=noNodes; i++) {
        for(int j=1; j<=noNodes; j++) {
            fout << arr[i][j] << ' ';
        }
        fout << endl;
    }

    return 0;
}