Cod sursa(job #1557652)

Utilizator dobrebogdanDobre Bogdan Mihai dobrebogdan Data 27 decembrie 2015 22:35:25
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<cstdio>
int a[105][105],di[105][105];
int main()
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    int n,i,j,k;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    {
    scanf("%d",&a[i][j]);
    if(a[i][j]==0)
    di[i][j]=1000000;
    else
    di[i][j]=a[i][j];
    }
    for(k=1;k<=n;k++)
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
    if(i!=j && j!=k && i!=k)
    if(di[i][j]>di[i][k]+di[k][j])
    di[i][j]=di[i][k]+di[k][j];
    for(i=1;i<=n;i++)
    {
    for(j=1;j<=n;j++)
    if(di[i][j]<1000000)
    printf("%d ",di[i][j]);
    else
    printf("0 ");
    printf("\n");
    }
      return 0;
}