Cod sursa(job #2207546)

Utilizator sandupetrascoPetrasco Sandu sandupetrasco Data 25 mai 2018 22:15:43
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
#define ll long long
#define MOD 666013
#define NMAX 257
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];
            if (!M[i][j]) M[i][j] = 2e6;
        }
      
    //roy-floyd
    for(int k = 1; k <= N; k++)
        for(int i = 1; i <= N; i++)
            for(int j = 1; j <= N; j++){
                if(i != j && M[i][j] > M[i][k] + M[k][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] == 2e6 ? 0 : M[i][j]) <<" ";
        cout << "\n";
    }
    
    return 0;
}