Cod sursa(job #1560244)

Utilizator mirupetPetcan Miruna mirupet Data 2 ianuarie 2016 11:51:37
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<cstdio>
#define DIM 101
using namespace std;

FILE* fin = freopen("royfloyd.in","r",stdin);
FILE* fout = freopen("royfloyd.out","w",stdout);

int N, i, j, k;
int v[DIM][DIM];

int main()
    {
        scanf("%d", &N);

        for (i = 1; i <= N; i++)
            for (j = 1; j <= N; j++)
                scanf("%d", &v[i][j]);

        for (k = 1; k <= N; k++)
            for (i = 1; i <= N; i++)
                for (j = 1; j <= N; j++)
                    if (v[i][k] && v[k][j] && (v[i][k] + v[k][j] < v[i][j] || !v[i][j]) && i != j)
                        v[i][j] = v[i][k] + v[k][j];

        for (i = 1; i <= N; i++)
        {
            for (j = 1; j <= N; j++)
                printf("%d ", v[i][j]);
            printf("\n");
        }


    }