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. Numerele impare se vor afla după numerele pare, în ordine descrescătoare (a numerelor nu a pozitiilor).
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 Date de ieșire
5
1 8 7 4 5 4 8 7 5 1
va rog urgent.


Răspuns :

#include <iostream>using namespace std;
int main(){    int a[1001],n,i,j,aux,nrpare=0;    cin>>n;    for(i=0;i<n;i++)    {          cin>>a[i];          if(a[i]%2==0)                nrpare++;    }
    for(i=0;i<n-1;i++)      for(j=i+1;j<n;j++)        if(a[j]%2==0 && a[i]%2==1)        {            aux=a[i];            a[i]=a[j];            a[j]=aux;        }    for(i=0;i<nrpare-1;i++)       for(j=i+1;j<nrpare;j++)        if(a[i] > a[j])    {            aux=a[i];            a[i]=a[j];            a[j]=aux;    }    for(i=nrpare;i<n-1;i++)       for(j=nrpare+1;j<n;j++)        if(a[j]>a[i])      {            aux=a[i];            a[i]=a[j];            a[j]=aux;      }    for(i=0;i<n;i++)        cout<<a[i]<<" ";    return 0;}