Răspuns:
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;
int v[1000000];
int main(){
int x, p = 0;
ifstream fin("bac.txt");
while(fin >> x){
v[p++] = x;
}
fin.close();
sort(v, v+p, [](int a, int b) -> bool {return (a%2) == (b%2) ? a < b : (a%2) > (b%2); });
for(int i = 0; i < p; i++)
cout << v[i] << ' ';
}
Explicație:
Se citesc toate numerele, se memoreaza intr-un vector, si se sorteaza astfel:
Daca 2 numere au aceasi paritate, atunci cel mai mic dintre ele este asezat inaintea celui mai mare.
Daca 2 numere au paritate diferita, atunci cel impar este asezat inaintea celui par.
Si apoi se afiseaza vectorul rezultat.