Cod sursa(job #450072)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 7 mai 2010 18:04:19
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include <stdio.h>
#include <string.h>
#include <vector>

int a[103][103];
int mat[103][103];
int i,j;
int N;
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]);
                mat[i][j] = 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)
            if (mat[i][k] && mat[k][j])
             if ((mat[i][j] > mat[i][k] + mat[k][j]) || mat[i][j] == 0)
              {
                  mat[i][j] = mat[i][k] + mat[k][j];
              }


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


        return 0;


}