fbpx

Problema #805 – Valuri – Rezolvari PBInfo

de Mihai-Alexandru

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.

void valuri(int n , int a[])
{
    int imp=1;
    int par=2*n;
    for(int i = 0 ; i < 2*n ; ++i)
    {
        if(i%2==0)
        {
            a[i]=imp;
            imp+=2;
        }
        else
        {
            a[i]=par;
            par-=2;
        }
    }
}
Comentarii

S-ar putea sa iti placa