Cod sursa(job #899913)

Utilizator the@EyE@Postavaru Stefan the@EyE@ Data 28 februarie 2013 16:48:45
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>

int n,din[101][101];

int main()
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    scanf("%d",&n);
    for(int i=0;i<n;++i)
        for(int j=0;j<n;++j)scanf("%d",&din[i][j]);
     for(int k=0;k<n;++k)
        for(int i=0;i<n;++i)
            for(int j=0;j<n;++j)
                if(din[i][k]&&din[k][j]&&(din[i][j]>din[i][k]+din[k][j]||!din[i][j])&&i!=j)
                    din[i][j]=din[i][k]+din[k][j];

     for(int i=0;i<n;++i)
     {
        for(int j=0;j<n;++j)printf("%d ",din[i][j]);
        printf("\n");
     }
     return 0;
}