👤

Fiind dat un șir de N numere întregi pozitive, să se afișeze pe ecran numerele șirului inițial, cu următoarele modificări:

Numerele pare se vor afla pe primele poziții din șir, în ordine crescătoare a pozițiilor în șirul inițial.
Numerele impare se vor afla după numerele pare, în ordine descrescătoare a pozițiilor în șirul inițial.
Date de intrare
Se vor citi:

Un număr întreg N
Un șir de N numere întregi pozitive
Date de ieșire
Pe ecran se va afișa șirul modificat.

Restricții
N < 1000
Numerele din șir vor fi mai mici sau egale decât 1000
Exemplu
Date de intrare :             
 5 
1 8 7 4 5       
Date de iesire:
     8 4 5 7 1


Răspuns :

#include <iostream>
using namespace std;

int main()
{
int n; cin >> n;
int sir[n];
int pare = 0;
for(int i = 0; i < n; i++)
{
cin>>sir[i];
pare += (1 - sir[i] % 2);
}
int pareVec[pare];
int impareVec[n - pare];
int p1 = 0, p2 = 0;
for(int i = 0; i < n; i++)
{
if(sir[i] % 2 == 0)pareVec[p1++] = sir[i];
else impareVec[p2++] = sir[i];
}
for(int i = 0; i < n; i++)
{
if(i < pare)
cout << pareVec[i];
else
cout << impareVec[--p2];
}
}