Cerința
Se dă un vector cu n elemente, numere naturale distincte. Ordonați crescător elementele situate înaintea valorii maxime din vector și descrescător elementele situate după această valoare.

Date de intrare
Programul citește de la tastatură numerele n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire
Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.

Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu
Intrare

7
13 1 10 15 3 7 11
Ieșire

1 10 13 15 11 7 3
In C++​

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int             v[ 1000 ];

int main()

{

   int             n = 0, maxim =  -1, aux = 0, iMax = 0;

   cin >> n;

   for( int i = 0; i < n; ++i )

   {

       cin >> v[ i ];

       if( v[ i ] > maxim )

       {

           maxim = v[ i ];

           iMax = i;

       }

   }

   for( int i = 0; i < iMax - 1; ++i )

   {

       for( int j = i + 1; j <  iMax; ++j )

       {

           if( v[ i ] > v[ j ] )

           {

               aux = v[ i ];

               v[ i ] = v[ j ];

               v[ j ] = aux;

           }

       }

   }

   for( int i = 0; i < iMax - 1; ++i )

   {

       cout << v[ i ] << " ";

   }

   cout << v[ iMax - 1 ] << " ";

   for( int i = iMax; i < n - 1; ++i )

   {

       for( int j = i + 1; j < n; ++j )

       {

           if( v[ i ] < v[ j ] )

           {

               aux = v[ i ];

               v[ i ] = v[ j ];

               v[ j ] = aux;

           }

       }

   }

   for( int i = iMax; i < n; ++i )

   {

       cout << v[ i ] << " ";

   }

   return 0;

}

Explicație: