Cod sursa(job #2424952)

Utilizator rebeca.d31Diaconu Rebeca-Mihaela rebeca.d31 Data 23 mai 2019 23:55:56
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include<vector>
#include<fstream>
#define N 101
using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int n;
int D[N][N];

void citire()
{
    f>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            int x;
            f>>x;
            D[i][j]=x;
        }
}

int main()
{
    citire();
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(D[i][j]==0 && i!=j)
                {
                    if(D[i][k]!=0 && D[k][j]!=0)
                        D[i][j]=D[i][k]+D[k][j];
                }
                else
                if(D[i][j]>D[i][k]+D[k][j] && D[i][k]!=0 && D[k][j]!=0)
                    D[i][j]=D[i][k]+D[k][j];
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
            g<<D[i][j]<<" ";
        g<<"\n";
    }
    return 0;
}