Cod sursa(job #2676035)

Utilizator MateGMGozner Mate MateGM Data 23 noiembrie 2020 11:35:14
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <climits>

using namespace std;

ifstream be("royfloyd.in");
ofstream ki("royfloyd.out");
void kiir(vector<vector<int> >&a,int n)
{
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++)
            ki<<a[i][j]<<" ";
        ki<<endl;
    }
}

void royfloyd(vector<vector<int> >&a,int n)
{

    for(int k=0;k<n;k++){
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++)
                if(a[i][j]>a[k][j]+a[i][k])
                    a[i][j]=a[k][j]+a[i][k];
        }
    }
}

int main()
{

    int n;
    be>>n;
    vector<vector<int> >adj(n,vector<int>(n));
    vector<vector<int> >a(n,vector<int>(n));
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++){
            be>>adj[i][j];
            a[i][j]=adj[i][j];
            a[i][i]=0;
        }
    royfloyd(a,n);
    kiir(a,n);
    return 0;
}