fbpx

Problema #2594 – Partitionare – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se citește un număr natural n și un șir de n numere întregi. Să se aranjeze elementele astfel încât în prima parte a șirului să fie valorile pare în ordine crescătoare, iar în partea a doua valorile impare, de asemenea în ordine crescătoare.

Date de intrare

Programul citește de la tastatură numărul n și apoi cele n elemente ale șirului.

Date de ieșire

Programul afișează pe ecran elementele șirului după prelucrare cu spații intre ele.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • cele n numere pot fi reprezentate pe 32 de biți cu semn.

Exemplu

Intrare

10
5 4 3 2 1 6 7 8 9 18

Ieșire

2 4 6 8 18 1 3 5 7 9
#include <bits/stdc++.h>

using namespace std;

int a[1001] , b[1001] , p1 , p2;

int main()
{
    int n;
    cin >> n;
    int x;
    for(int i = 1 ; i <= n ; ++i)
    {
        cin >> x;
        if(x%2==0)
            a[p1]=x , p1++;
        else
            b[p2]=x , p2++;
    }
    sort(a , a + p1);
    sort(b , b + p2);
    for(int i = 0 ; i < p1 ; ++i)
        cout << a[i] << ' ';
    for(int i = 0 ; i < p2 ; ++i)
        cout << b[i] << ' ';
    return 0;
}
Comentarii

S-ar putea sa iti placa