Cod sursa(job #227179)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 3 decembrie 2008 21:28:23
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>
int a[1001][1001];
int i;
int j;
int n;
int k;

int main()
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    scanf("%d",&n);

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

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