Cod sursa(job #222250)

Utilizator runnaway90Oprescu Radu Constantin runnaway90 Data 21 noiembrie 2008 14:59:05
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<stdio.h>

int i,j,k,n,a[102][102];

void citire();
void rezolvare();
void afisare();

int main(){
    citire();
    rezolvare();
    afisare();
    return 0;
}

void citire(){
     freopen("royfloyd.in","r",stdin);
     scanf("%d",&n);
     for (i=1;i<=n;i++)
         for (j=1;j<=n;j++)
             scanf("%d %d",&a[i][j]);
}

void rezolvare(){
     for (k=1;k<=n;k++)
         for (i=1;i<=n;i++)
             for (j=1;j<=n;j++)
                 if ((a[i][j]>a[i][k]+a[k][j] || !a[i][j])&& i!=j && a[i][k] && a[k][j])
                    a[i][j]=a[i][k]+a[k][j];
}

void afisare(){
     freopen("royfloyd.out","w",stdout);
     for (i=1;i<=n;i++){
         for (j=1;j<=n;j++)
             printf("%d ",a[i][j]);
         printf("\n");
     }
}