Informatică, întrebare adresată de Ouroboros, 9 ani în urmă

Cerinţa

Se dau cel mult 100000 de numere naturale, cu cel mult 2 cifre fiecare. Afişaţi în ordine strict crescătoare valorile impare care se regăsesc printre valorile date, şi în ordine strict descrescătoare valorile pare care se regăsesc printre valorile date.
Date de intrare

Fişierul de intrare pareimpare.in conţine cel mult 100000 de numere naturale, cu cel mult 2 cifre fiecare, dispuse pe mai multe linii şi separate prin spaţii.
Date de ieşire

Fişierul de ieşire pareimpare.out va conţine pe prima linie şirul valorilor impare, separate printr-un spaţiu, iar pe a doua linie şirul valorilor pare, separate printr-un spaţiu.
Restricţii şi precizări

în fişierul de intrare se află cel puţin un număr par şi cel puţin un număr impar;


Exemplu

pareimpare.in

75 12 3 3 18 75 1 3

pareimpare.out

1 3 75
18 12

Răspunsuri la întrebare

Răspuns de AntiEaglesDavids
2
#include <bits/stdc++.h>
using namespace std;
ofstream fout("pareimpare.out");
ifstream fin("pareimpare.in");

int x;
set<short> im, p;

int main()
{
    while(fin >> x)
        x & 1 ? im.insert(x) : p.insert(x);

    for(const auto & e : im)
        fout << e << ' ';
    cout << '\n';
    for(auto it = p.rbegin(); it != p.rend(); ++it)
        fout << *it << ' ';

    return 0;
}

Ouroboros: la ce ajuta set,auto ,const, p.rbegin si p.insert?
Ouroboros: ok..sa stii ca problema aceasta da 0 puncte din pacate
AntiEaglesDavids: in loc de "cout << '\n';" pune "fout << '\n';" si iti va merge
Alte întrebări interesante