Cod sursa(job #2287676)

Utilizator andy_vamosRezus Andrei andy_vamos Data 22 noiembrie 2018 12:14:38
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <stdio.h>
#include <stdlib.h>

int n;
int a[101][101];

void citire()
{
     scanf("%d",&n);
    for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
        {
            scanf(" %d ",&a[i][j]);
        }
}
void floyd()
{
    for(int k = 1 ; k <=n; k++)
    {
        for(int i = 1; i<=n;i++)
        {
            for(int j = 1 ; j <=n; j++)
            {
                if(a[i][k] != 0 && a[k][j] != 0 && (a[i][j] > a[i][k] + a[k][j] || a[i][j] == 0) && i != j)
                a[i][j] = a[i][k] + a[k][j];
            }
        }
    }
    for(int i =1 ; i <= n;i++)
    {
        for(int j = 1 ; j <= n; j++)
           printf(" %d ",a[i][j]);
           printf("\n");
    }
}
int main()
{
    citire();
    floyd();
    return 0;
}