# PBinfo #180 – sortminmax – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerinţa
Să se ordoneze crescător elementele dintr-un şir dat cuprinse între elementul de valoare maximă şi cel de valoare minimă.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale distincte, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran elementele şirului după ordonare.

Restricţii şi precizări

0 < n ≤ 1000
elementele şirului sunt numere naturale mai mici decât 1.000.000

Exemplu:
Intrare

5
10 20 15 7 12
Ieșire

10 7 15 20 12
Explicație
S-au ordonat elementele aflate pe poziţiile 2, 3, 4.

## Cod sursă C++

```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
	int n, v[1001], minim = 1000000001, maxim = -1000000001, pozmin = 0, pozmax = 0;
    cin >> n;
    for (int i = 1; i <= n; ++i) { 
        cin >> v[i];
        if (v[i] > maxim) {
            maxim = v[i];
            pozmax = i;
        } else if (v[i] < minim) {
            minim = v[i];
            pozmin = i;
    	}
    } if (pozmin > pozmax) swap(pozmin, pozmax);
    sort(v + pozmin, v + pozmax + 1);
    for (int i = 1; i <= n; ++i)
        cout << v[i] << " ";
    return 0;
} // rezolvare cu stl sort
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/180)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/180/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-180/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
