Cod sursa(job #145555)

Utilizator floflowfloflofloflofloflo floflow Data 28 februarie 2008 22:39:47
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream.h>

 ifstream f("royfloyd.in");
 ofstream g("royfloyd.out");
 
 int a[200][200],i,n,j,k;
 void creare();
 void royf();
 void afisare(); 
 int main()
 {  creare();
    royf();
    afisare();
    return 0;  
      }
void creare()
{  f>>n;
    for(i=1;i<=n;i++)
       for(j=1;j<=n;j++)
    f>>a[i][j];     
}    

 void royf()
 {   int i, j, k;  
     for (k = 1; k <= n; k++)  
        for (i = 1; i <= n; i++)  
            for (j = 1; j <= n; j++)  
                if (a[i][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]) && i != j) a[i][j] = a[i][k] + a[k][j];       
       }
  void afisare()
  { for(i=1;i<=n;i++)
      { for(j=1;j<=n;j++)
       g<<a[i][j];g<<"\n"; }
         }