Advertisement
marius7122

Untitled

Jul 16th, 2019
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. const int N = 100;
  7.  
  8. void FLIP(int n, int v[], int i, int j)
  9. {
  10.     while(i < j)
  11.     {
  12.         int aux = v[i];
  13.         v[i] = v[j];
  14.         v[j] = aux;
  15.  
  16.         i++;
  17.         j--;
  18.     }
  19. }
  20.  
  21. int n, i, j, v[100];
  22.  
  23. int main()
  24. {
  25.     cin>>n;
  26.     for(i=1;i<=n;i++)
  27.         cin>>v[i];
  28.  
  29.     for(i=n; i>1; i--)
  30.     {
  31.         // caut maximul in intervalul 0 ... i
  32.         int imaxim = 1;
  33.         for(j=2;j<=i;j++)
  34.             if(v[j] > v[imaxim])
  35.                 imaxim = j;
  36.  
  37.         // elementul maxim este pe pozitia corecta
  38.         if(imaxim == i)
  39.             continue;
  40.  
  41.         // aduc maximul pe prima pozitie
  42.         if(imaxim != 1)
  43.             FLIP(n, v, 1, imaxim);
  44.  
  45.         // aduc maximul pe ultima pozitie
  46.         FLIP(n, v, 1, i);
  47.     }
  48.  
  49.     for(i=1;i<=n;i++)
  50.         cout<<v[i]<<' ';
  51.  
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement