Cod sursa(job #1609893)

Utilizator roxana.aeleneiAelenei Roxana roxana.aelenei Data 23 februarie 2016 09:35:31
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <cstdio>
#include <algorithm>
using namespace std;

int n, a[102][102], b[102][102];

int main()
{
    freopen("royfloyd.in", "r", stdin);
    freopen("royfloyd.out", "w", stdout);


    scanf("%d", &n);
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
        scanf("%d", &a[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 || a[i][k]==0 || a[k][j]==0) continue;
                   if(a[i][j]==0 || a[i][k]+a[k][j]< a[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");
    }

    return 0;
}