Cod sursa(job #2237781)

Utilizator radu.leonardoThe Doctor radu.leonardo Data 3 septembrie 2018 01:41:41
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <vector>
using namespace std;

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

    int n;
    vector<vector<int>> adj(110,vector<int>(110));

    fin>>n;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
            fin>>adj[i][j];

    for(int intermediate=1; intermediate<=n; intermediate++)
        for(int i=1; i<=n; i++)
            for(int j=1; j<=n; j++)
                if(i!=j)
                    if (adj[i][intermediate]&&adj[intermediate][j])
                        if(adj[i][intermediate]+adj[intermediate][j]<adj[i][j] || !adj[i][j])
                            adj[i][j]=adj[i][intermediate]+adj[intermediate][j];

    for(int i=1; i<=n; i++) {
        for(int j=1; j<=n; j++)
            fout<<adj[i][j]<<' ';
        fout<<'\n';
    }

    return 0;
}