Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Diskret / Graf_Floid / main

.cpp
Скачиваний:
5
Добавлен:
18.08.2019
Размер:
1.46 Кб
Скачать
/* 
 * File:   main.cpp
 * Author: Игорь
 *
 * Created on 22 ноября 2018 г., 16:37
 */

#include <cstdlib>
#include <iostream>
#define n 5

 using namespace std;
 
 void print_mtrx(int arr[n][n])
 {
    for( int i=0 ; i<n ; i++ )
    {
        for( int j=0 ; j<n ; j++ )
            cout << arr[i][j] << " ";
        cout << endl;
    }
    cout << endl;
 }
 
int main(){
    int maxr = 0;
/*    
    int a[n][n] = {{0, 5, 9, -1},
                  {-1, 0, 2, 8},
                  {-1, -1, 0, 7},
                  {4, -1, -1, 0}};
*/
    int a[n][n] = {{0, 5, 5, 6, -1},
                  {-1, 0, 9, 8, 4},
                  {-1, -1, 0, 3, 8},
                  {6, -1, -1, 0, 5},
                  {-1, 2, 5, 6, 0}};
    
    cout << "Adjacency matrix: " << endl;
    print_mtrx(a);
    
    for( int k=0 ; k<n ; k++ )
        for( int i=0 ; i<n ; i++ )
            for( int j=0 ; j<n ; j++ )
                if(i != j && a[i][k] != -1 && a[k][j] != -1)
                    if(a[i][j] == -1)
                        a[i][j] = a[i][k] + a[k][j];
                    else
                        a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
    
    cout << "Matrix of minimal ways:" << endl;
    print_mtrx(a);
    
    for( int i=0 ; i<n ; i++ )
        for( int j=0 ; j<n ; j++ )
            if(a[i][j] > maxr)
                maxr = a[i][j];
    
    cout << "Max way: " << maxr << endl;
}
Соседние файлы в папке Graf_Floid
  • #
    18.08.2019163 б5.dep.inc
  • #
    18.08.20191.46 Кб5main.cpp
  • #
    18.08.20193.48 Кб5Makefile