Cod sursa(job #2207356)

Utilizator cristianritaCristian Rita cristianrita Data 25 mai 2018 15:50:38
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>
#define maxn 105
#define inf 1<<30

using namespace std;

int m[maxn][maxn];
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

void royfloyd(int n) {
    for(int k = 0; k < n; k++)
        for(int i = 0; i < n; i++)
            for(int j = 0; j < n; j++) {
                if(m[i][j] == 0)
                    continue;
                if(m[i][j] > m[i][k] + m[k][j])
                    m[i][j] = m[i][k] + m[k][j];
            }

}

int main() {
    int n;
    in>>n;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            in>>m[i][j];

    royfloyd(n);

    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n; j++) {
            out<<m[i][j]<<" ";
        }
        out<<"\n";
    }

    return 0;
}