Cod sursa(job #2571777)

Utilizator yo_andrei_2003Murica Andrei yo_andrei_2003 Data 5 martie 2020 10:07:21
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <cstdio>

using namespace std;
int m[102][102], n;
void roy() {
    for (int i=0;i<n;i++) {
        for (int l=0;l<n;l++) {
            for (int k=0;k<n;k++) {
                if (m[l][k]>m[l][i]+m[i][k] && m[i][k]!=0 && m[l][i]!=0) {
                    m[l][k]=m[l][i]+m[i][k];
                }
            }
        }
    }
}
int main()
{
    int i, l;
    FILE *fin, *fout;
    fin=fopen("royfloyd.in" ,"r");
    fout=fopen("royfloyd.out" ,"w");
    fscanf(fin, "%d" ,&n);
    for (i=0;i<n;i++) {
        for (l=0;l<n;l++) {
            fscanf(fin, "%d" ,&m[i][l]);
        }
    }
    roy();
    for (i=0;i<n;i++) {
        for (l=0;l<n;l++) {
            fprintf(fout, "%d " ,m[i][l]);
        }
        fprintf(fout, "\n");
    }
    cout << "Hello world!" << endl;
    return 0;
}