Cod sursa(job #2812413)

Utilizator mirunavrAvram Miruna-Alexandra mirunavr Data 4 decembrie 2021 14:57:07
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include<bits/stdc++.h>
using namespace std;


ifstream f("royfloyd.in");
ofstream g("royfloyd.out");


int n;
int cost[101][101], d[101][101], p[101][101];


int main(){
    int i,j,k;
f>>n;
for(i=1;i<=n;i++)
    for(j=1;j<=n;j++) {
        f >> cost[i][j];
        if (i != j && cost[i][j] == 0) {
            d[i][j] = 1001;
            p[i][j] = 0;
        } else {
            d[i][j] = cost[i][j];
            p[i][j] = i;
        }
    }
        for (k = 1; k <= n; k++)
            for (i = 1; i <= n; i++)
                for (j = 1; j <= n; j++)
                    if (d[i][j] > d[i][k] + d[k][j]) {
                        d[i][j] = d[i][k] + d[k][j];
                        p[i][j] = p[k][j];
                    }

for(i=1;i<=n;i++)
{
    for(j=1;j<=n;j++)
        g<<d[i][j]<<" ";
    g<<endl;
}

}