Advertisement
Five_NT

[C++]Algoritm Roy Floyd

Feb 26th, 2014
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. /*
  2.     ***Algoritmul lui Roy Floyd***
  3.     Matricea costurilor minime
  4. */
  5. #include <fstream>
  6.  
  7. using namespace std;
  8.  
  9. ifstream f("matrice.in");
  10. ofstream g("matrice.out");
  11.  
  12. const long val=500;
  13. int a[50][50],n,i,j,c;
  14.  
  15. void init()
  16. {
  17.     f>>n;
  18.     for(i=1; i<=n; i++)
  19.         for(j=1; j<=n; j++)
  20.             if(i==j)
  21.                 a[i][j]=0;
  22.             else
  23.                 a[i][j]=val;
  24. }
  25. void citire()
  26. {
  27.     while(f>>i>>j>>c)
  28.         a[i][j]=c;
  29. }
  30. void afis()
  31. {
  32.     for(i=1; i<=n; i++)
  33.     {
  34.         for(j=1; j<=n; j++)
  35.             g<<a[i][j]<<" ";
  36.         g<<'\n';
  37.     }
  38. }
  39. void Roy_Floyd()
  40. {
  41.     for(int k=1; k<=n; k++)
  42.         for(i=1; i<=n; i++)
  43.             for(j=1; j<=n; j++)
  44.                 if(a[i][k]+a[k][j]<a[i][j])
  45.                     a[i][j]=a[i][k]+a[k][j];
  46. }
  47. int main()
  48. {
  49.     init();
  50.     citire();
  51.     Roy_Floyd();
  52.     afis();
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement