Advertisement
AlexandruDu

Matricea Costurilor

Mar 1st, 2021
702
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1.  int c[50][50], D[50], S[50], T[50], n, r, poz, mini, i, j, infinit=99999;
  2. void drum(int i)
  3. { if (T[i] !=0) drum(T[i]);
  4.       cout<<i<<’ ‘;}
  5. int main(){
  6. \\ Citire matrice costuri
  7.  {for(i=1;i<=n;i++)
  8.     for(j=1;j<=n;j++)
  9.       {cin>>c[i][j];  
  10.        while(c[i][j]!=0&&c[i][j]!=1)
  11.             c[j][i]=c[i][j];
  12.  }
  13.   cout<<”r=;cin>>r;
  14.       S[r]=1;
  15.   for(i=1;i<=n;i++)
  16.      { D[i]=C[r][i];
  17.   If (i!=r) && (D[i]< infinit)
  18.       T[i]=r;}
  19. for( i=1;i<=n;i++)
  20.    { mini=infinit;
  21. for(j=1; j<=n;j++)
  22.     if (S[j]==0)
  23.       if (D[j]<mini)
  24.           { mini=D[j]; poz=j; }
  25.             S[poz]=1;
  26. for(j=1; j<=n;j++)
  27.      if (S[j]==0)
  28.          if (D[j]> D[poz]+C[poz][j])
  29.             { D[j] = D[poz]+C[poz][j];
  30.               T[j]=poz;}
  31. }
  32. for( i=1;i<=n;i++)
  33.     cout<<”de la ”<<r <<”la ”<<i<<” lungimea este ”<<D[i]<<endl;
  34.     cout <<endl;
  35. for( i=1;i<=n;i++)
  36. { if (i!=r)
  37.      if(T[i]!=0)
  38.        { drum(i);
  39.           cout<<endl;}
  40.         else
  41.           cout<<”Nu exista drum de la ”<<r<<” la ”<<i<<endl;
  42. }
  43. return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement