Cod sursa(job #1599603)

Utilizator bmanghiucManghiuc Bogdan bmanghiuc Data 14 februarie 2016 01:03:07
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <cstdio>
#define NMAX 101
using namespace std;
int A[NMAX][NMAX];

int read(){
    freopen("royfloyd.in", "r", stdin);
    freopen("royfloyd.out", "w", stdout);
    int N;
    cin>>N;
    for(int i = 1; i <= N; i++)
        for(int j=1; j<=N; j++)
            cin>>A[i][j];
    return N;
}

void Roy_Floyd(int N){
    for(int i=1; i<=N; i++)
        for(int j=1; j<=N; j++)
            for(int k=1; k<=N; k++)
                if(A[i][j] > A[i][k] + A[k][j])
                    A[i][j] = A[i][k] + A[k][j];
}

void write(int N){
    for(int i=1; i<=N; i++){
        for(int j=1; j<=N; j++)
            cout<<A[i][j]<<" ";
        cout<<'\n';
    }
}
int main()
{
    int n = read();
    Roy_Floyd(n);
    write(n);
    return 0;
}