Cod sursa(job #2754582)

Utilizator HermioneMatei Hermina-Maria Hermione Data 26 mai 2021 00:48:13
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
#define ullong unsigned long long
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
ullong n;
vector<vector<ullong>> G;

void Roy_Floyd(){
    for(ullong k = 1; k <= n; k++)
        for(ullong i = 1; i <= n; i++)
            for(ullong j = 1; j <= n; j++){
                    G[i][j] = min(G[i][j], G[i][k] + G[k][j]);

            }

    for(ullong i = 1; i <=n; i++){
        for(ullong j = 1; j <=n; j++){
            if(G[i][j] >= 1e6)
                g<<0<<' ';
            else
                g<<G[i][j]<<" ";
        }
        g<<"\n";
    }
}

int main()
{
    f>>n;
    G.resize(n + 1);
    for(ullong i = 0; i <= n; i++)
       G[i].resize(n + 1);

    for(ullong i = 1; i <=n; i++){
        for(ullong j = 1; j <=n; j++){
            f>>G[i][j];
            if(!G[i][j] && i != j)
                G[i][j] = 1e6;
        }
    }
    Roy_Floyd();
    return 0;
}