Cod sursa(job #3323460)

Utilizator alexandra_panaet15025Panaet Maria Alexandra alexandra_panaet15025 Data 18 noiembrie 2025 13:05:39
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <fstream>

using namespace std;

int main() {
    ifstream fin("royfloyd.in");
    ofstream fout("royfloyd.out");
    int n;
    fin >> n;
    int d[101][101];
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=n;j++) {
            fin >> d[i][j];
        }
    }
    for (int k=1;k<=n;k++) {
        for (int i=1;i<=n;i++) {
            for (int j=1;j<=n;j++) {
                if (i==j) {
                    continue;
                }
                if (d[i][k]!=0 && d[k][j]!=0) {
                    if (d[i][j]==0) {
                        d[i][j]=d[i][k]+d[k][j];
                    }
                    else if ((d[i][k] + d[k][j]) < d[i][j]) {
                        d[i][j]=d[i][k]+d[k][j];
                    }
                }
            }
        }
    }
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=n;j++) {
            fout << d[i][j];
            if (j < n) {
                fout << " ";
            }
        }
        fout << "\n";
    }
    
    fin.close();
    fout.close();
    
    return 0;
}