Cod sursa(job #3251495)

Utilizator ONLYGODYBochis Andrei ONLYGODY Data 26 octombrie 2024 09:35:23
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fi("royfloyd.in");
ofstream fo("royfloyd.out");

int dist[505][505];
int n;
int inf=1000000000;

int main(){

    fi >> n;

    for (int i = 0; i < n; i++) {

        for (int j = 0; j < n; ++j) {

            fi >> dist[i][j];
            if(dist[i][j] == 0){dist[i][j] = inf;}
            if(i == j){dist[i][j] = 0;}

        }

    }

    for(int k = 0; k < n; ++k) {

        for(int i = 0; i < n; ++i) {

            for(int j = 0; j < n; ++j) {

                dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);

            }

        }

    }

    for(int i = 0; i < n; ++i) {

        for(int j = 0; j < n; ++j) {

            fo << dist[i][j] << ' ';

        }

        fo << '\n';

    }

    return 0;
}