fbpx

Problema #2083 – ordon123 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Scrieți definiția completă a subprogramului C++ ordon123 care are 2 parametri:

Cerința

Scrieți definiția completă a subprogramului C++ ordon123 care are 2 parametri:

  • n – prin care primește un număr natural
  • a – prin care primește un tablou unidimensional cu n elemente, numere naturale din mulțimea {1,2,3}.

Subprogramul ordonează crescător tabloul a fără a returna valori.

Restricții și precizări

  • 1 ≤ n ≤ 1.000.000
  • numele subprogramului cerut este ordon123
  • parametrii sunt, în această ordine: n, a
  • elementele tabloului a sunt indexate de la zero.

Exemplu:

Dacă n=6 și a=(3,1,2,1,3,1), după apelul subprogramului tabloul a devine (1,1,1,2,3,3).

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 ordon123(int n , int a[])
{
    int cnt1=0 , cnt2=0 , cnt3=0;
    for(int i = 0 ; i < n ; ++i)
    {
        if(a[i]==1)
            cnt1++;
        if(a[i]==2)
            cnt2++;
        else
            cnt3++;
    }
    for(int i = 0 ; i < cnt1 ; ++i)
        a[i]=1;
    for(int i = cnt1 ; i < cnt1+cnt2 ; ++i)
        a[i]=2;
    for(int i = cnt1+cnt2 ; i < n ; ++i)
        a[i]=3;
}
Comentarii

S-ar putea sa iti placa