Cod sursa(job #151332)

Utilizator drigishCiordas Dragos drigish Data 7 martie 2008 23:53:35
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<iostream>
#include<stdio.h>
int c[500][500], i,j,k,n;
using namespace std;
int main ()
{
    freopen("royfloyd.in","r",stdin);
    cin>>n;
    for(i=1; i<=n; i++)
     for(j=1; j<=n; j++)
      cin>>c[i][j];
      
    for(k=1; k<=n; k++)
     for(i=1; i<=n; i++)
      for(j=1; j<=n; j++)
       if(c[i][k]!=0 && c[k][j]!=0 && (c[i][j]>c[i][k]+c[k][j] || c[i][j]==0) && i!=j) c[i][j]=c[i][k]+c[k][j];
    
    freopen("royfloyd.out","w",stdout);
    for(i=1; i<=n; i++)
     {
     cout<<c[i][1];
     for(j=2; j<=n; j++)
      cout<<' '<<c[i][j];
     cout<<endl;
     }
    
    fclose(stdin);
    fclose(stdout);
    return 0;
}