Cod sursa(job #2325269)

Utilizator sebistetuCucolas Sebastian sebistetu Data 22 ianuarie 2019 13:40:36
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include<bits/stdc++.h>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int n, a[105][105], i, j, k;

void citire() {

    f >> n;
    for(i = 1; i <= n; ++i)
        for(j = 1; j <= n; ++j)
            f >> a[i][j];
}

void roy_floyd() {

    for(j = 1; j <= n; ++j)
        for(i = 1; i <= n; ++i)
            for(k = 1; k <= n; ++k)
                if((i - j) * (i - k) * (j - k))
                    if(a[i][k] > a[i][j] + a[j][k])
                        a[i][k] = a[i][j] + a[j][k];
}

void afisare() {

    for(i = 1; i <= n; ++i) {

        for(j = 1; j <= n; ++j)
            g << a[i][j] << ' ';
        g << '\n';
    }
}

int main(){

    citire();
    roy_floyd();
    afisare();

    return 0;
}