Cod sursa(job #2758553)

Utilizator lahayonTester lahayon Data 10 iunie 2021 23:25:16
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 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(graph[i][k] && graph[k][j] && graph[i][k] + graph[k][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;
}