Cod sursa(job #1691754)

Utilizator sandupetrascoPetrasco Sandu sandupetrasco Data 19 aprilie 2016 12:36:14
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <bits/stdc++.h>
#define ll long long
#define MOD 666013
#define NMAX 105
using namespace std;
int N, M[NMAX][NMAX];
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ifstream cin("royfloyd.in");
    ofstream cout("royfloyd.out");
    cin >> N;
    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
            cin >> M[i][j];
    
    //roy-floyd
    for(int k = 1; k <= N; k++)
        for(int i = 1; i <= N; i++)
            for(int j = 1; j <= N; j++)
                if(M[i][k] && M[k][j] && (M[i][j] > M[i][k] + M[k][j] || !M[i][j]) && i!=j) M[i][j] = M[i][k] + M[k][j];
    
    for(int i = 1; i <= N; i++){
        for(int j = 1; j <= N; j++)
            cout << M[i][j] <<" ";
        cout << "\n";
    }
    return 0;
}