Cod sursa(job #2758554)

Utilizator lahayonTester lahayon Data 10 iunie 2021 23:27:50
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <vector>
#include <queue>

using namespace std;


int main()
{
    ifstream cin("royfloyd.in");
    ofstream cout("royfloyd.out");
         
    int N;
    cin >> N;
    vector<vector<int>> graph(N, vector<int>(N, 0));
    for(int i = 0; i < N; ++i)
        for(int j = 0; j < N; ++j)
            cin >> graph[i][j];


    for(int k = 0; k < N; ++k)
        for(int i = 0; i < N; ++i)
            for(int j = 0; j < N; ++j)
                if(i !=j && (graph[i][k] && graph[k][j]) && (graph[i][k] + graph[k][j] < graph[i][j] || !graph[i][j]))
                    graph[i][j] = graph[i][k] + graph[k][j];
        
      for(int i = 0; i < N; ++i){
        for(int j = 0; j < N; ++j)
            cout << graph[i][j] << " ";
        cout << "\n";
      }

    cin.close();
    cout.close();

    return 0;
}