# PBinfo #805 – Valuri – Rezolvare C++

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

## Enunț

Cerinţa
Scrieţi definiția completă a subprogramului C++ valuri care are 2 parametri: n – prin care primește un număr natural, v, prin care furnizează un tablou unidimensional cu 2*n elemente, valori naturale distincte din intervalul [1,2*n].

Subprogramul construieşte tabloul v astfel încât, în acesta, şirul elementelor impare să fie strict crescător, iar şirul elementelor pare să fie strict descrescător. Primul element al tabloului este impar, iar două elemente cu aceeaşi paritate nu pot ocupa poziţii consecutive în tablou.

Restricţii şi precizări

2<n<50
numele subprogramului cerut este valuri
parametrii sunt, în această ordine: n, v
elementele tabloului v sunt indexate de la zero

Exemplu:
Dacă n=4 atunci, după apel, v=( 1, 8, 3, 6, 5, 4, 7, 2).

Important
Soluţia propusă va conţine doar definiţia subprogramului cerut. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
void valuri(int n, int *v) {
    for (int i = 0, j = 1; i < 2 * n; i = i + 2, j = j + 2) v[i] = j;
    for (int i = 1, j = 2 * n; i < 2 * n; i = i + 2, j = j - 2) v[i] = j;
}
```

## Resurse

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