Sunteți pe pagina 1din 33

#1005 Numere8

Cerința
Se dă o listă cu numere naturale. Să se determine numerele naturale
nenule cu cel mult patru cifre care nu apar în lista dată.

Date de intrare
Fișierul de intrare numere8.in conține lista de numere, dispuse pe mai
multe linii, separate prin spații.

Date de ieșire
Fișierul de ieșire numere8.out va conține pe prima linie, în ordine
descrescătoare, numerele nenule cu cel mult patru cifre care nu se afl ă
în listă, separate prin exact un spațiu.

Restricții și precizări
 numerele din lista vor fi mai mici decât 1 000 000 000

Exemplu:
numere8.in

107 4 5 8 1 6 9

numere8.out

9999 9998 ... 108 106 105 ... 10 7 3 2

Explicație
Fișierul de ieșire din exemplu nu este complet :) …
#include <fstream>
using namespace std;

ifstream fin ("numere8.in");

ofstream fout ("numere8.out");

int x[10000],a;

int main()

while (fin>>a) //citeste numerele din sir

if (a<=9999) // sa aiba maxim 4 cifre

x[a]=1; //cele care sunt in sir vor fi marcate cu 1

for (a=9999; a>=1; a--) //se ia sirul descrescator ptc asa se cere

if (x[a]==0) //cele care nu sunt marcate cu 1 nu se afla in sir

fout << a << " ";

return 0;

#525 Numere1
Se dau n numere naturale. Determinaţi cele mai mari două numere cu trei cifre care nu apar
printre numerele date.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numerele a b, a < b reprezentând cele două numere
determinate. Dacă nu se pot găsi două astfel de numere, se va afişa mesajul NU EXISTA.

Exemplu:
Intrare
10
10 994 1010 999 1010 998 1005 994 996 995

Ieșire

993 997

#include <iostream>

using namespace std;

int x[1000],a,nr,n,i,y,z;

int main()

cin >> n;

for (i=1; i<=n; i++)

cin >> a;

if (a<=999)

x[a]=1;

for (a=999; a>=100 and nr<2; a--)

if (x[a]==0)

nr++;

if (nr==1)

y=a; //primu nr

else

z=a; //daca e 2, vine al doilea din capata

if (nr<2)

cout << "NU EXISTA";

else
cout <<z << " " << y; //z e cel mai mic

return 0;

#187 CifFrecv
Să se scrie un program care citeşte cel mult 1.000.000 de numere naturale din intervalul
închis [0,9] şi determină cel mai mare număr prim citit şi numărul său de apariții.

Date de intrare
Fișierul de intrare ciffrecv.in conţine cel mult 1.000.000 numere naturale din intervalul
închis [0,9], dispuse pe mai multe linii şi separate prin spaţii.

Date de ieşire
Fişierul de ieşire ciffrecv.out va conţine pe prima linie două numere
naturale MAX şi NR_AP, cu semnificaţia din enunţ.

Exemplu:
ciffrecv.in

5 8 9 1 9 5
1 1 2 2

ciffrecv.out

5 2

#include <fstream>

using namespace std;

ifstream fin ("ciffrecv.in");

ofstream fout ("ciffrecv.out");

int x[10],a;

int main()

while (fin >> a)

x[a]++;
if (x[7])

fout << 7 << " " << x[7];

else if (x[5])

fout << 5 << " " << x[5];

else if (x[3])

fout << 3 << " " << x[3];

else

fout << 2 << " " << x[2];

return 0;

#244 CifreOrd
Se dau n cifre zecimale. Să se afişeze aceste cifre în ordine crescătoare.

Date de intrare
Fişierul de intrare cifreord.in conţine pe prima linie numărul n, iar pe următoarele
linii n cifre zecimale separate prin spaţii.

Date de ieşire
Fişierul de ieşire cifreord.out va conţine cele n cifre ordonate crescător, câte 20 pe o linie,
valorile de pe fiecare linie fiind separate prin spaţii. Ultima linie a fişierului poate conţine mai
puţin de 20 de valori.

Exemplu:
cifreord.in

25
1 1 2 7 3 5 1 5
3 6 7 8 0 1 0 5
6 3 8 2
9 7 9 5 7

cifreord.out

0 0 1 1 1 1 2 2 3 3 3 5 5 5 5 6 6 7 7 7
7 8 8 9 9

#include <fstream>

using namespace std;

ifstream fin ("cifreord.in");

ofstream fout ("cifreord.out");

int x[10],n,i,j,b,a;

int main()

fin >> n;

for (i=1; i<=n; i++)

fin >> a; //citim cifra

x[a]++; //crestem spatiul

b=0; //cate sunt pe linie

for (a=0; a<=9; a++)

for (j=1; j<=x[a]; j++)

b++;

fout << a << " ";

if (b%20==0)

fout << endl;

return 0;

}
#264 MaxCif
Se dau mai multe numere naturale formate din exact o cifră. Determinaţi cifrele cu număr
maxim de apariţii.

Date de intrare
Fişierul de intrare maxcif.in conţine cel mult 100.000 de numere naturale separate formate
dintr-o singură cifră, dispuse pe mai multe linii şi separate prin spaţii.

Date de ieşire
Fişierul de ieşire maxcif.out va conţine pe prima linie valorile din fişierul de intrare cu
număr maxim de apariţii, în ordine crescătoare, separate prin exact un spaţiu.

Exemplu:
maxcif.in

5 6 4 1 2
5 7 2

maxcif.out

2 5

#include <fstream>

using namespace std;

ifstream fin ("maxcif.in");

ofstream fout ("maxcif.out");

int x[10],a,nrmaxap,i;

int main()

while (fin >> a)

{
x[a]++;

if (x[a]>nrmaxap)

nrmaxap=x[a];

for (i=0; i<=9; i++)

if (x[i]==nrmaxap)

fout << i << " ";

return 0;

#267 Unice
Cerinţa
Se dau n numere numere naturale cu cel mult două cifre fiecare. Să se determine acele
numere care apar o singură dată.

Date de intrare
Fişierul de intrare unice.in conţine pe prima linie numărul n; urmează n numere naturale cu
cel mult două cifre fiecare, dispuse pe mai multe linii şi separate prin spaţii.

Date de ieşire
Fişierul de ieşire unice.out va conţine pe prima linie, în ordine crescătoare, valorile care
apar o singură dată, separate printr-un spaţiu.

Exemplu:
unice.in

7
3 5 2 1
5 23 1

unice.out

2 3 23

#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("unice.in");

ofstream fout("unice.out");

int n,v[101],i,x;

int main()

fin>>n;

for(i=1; i<=n; i++)

fin>>x;

v[x]++;

for(i=0; i<=99; i++)

if(v[i]==1)

fout<<i<<" ";

return 0;

#2702 PerechiSosete
Cerința
Andrei lucrează într-un magazin de șosete, iar fiecare șosetă are asociat un numar întreg
pentru a o identifica mai ușor din ce model face parte. Dându-se un vector neordonat de astfel
de coduri, aflați câte perechi de șosete se pot forma.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numărul de perechi care se pot forma.
Restricții și precizări
 1 ≤ n ≤ 100
 Codurile șosetelor sunt cuprinse în intervalul [1, 100]

Exemplu:
Intrare

10
1 3 2 1 2 2 1 2 1 2

Ieșire

Explicație
Se formează 2 perechi cu șosetele care au codul 1 și încă 2 cu cele care au codul 2.

#include <iostream>

using namespace std;

int n, num, i, v[102], perechi,x;


int main()
{

cin >> n;
for (i=1; i<=n; ++i)
{
cin >> x;
v[x]++;
}
for (i=1; i<=100; ++i)
perechi=perechi+v[i]/2;
cout << perechi;

}
#529 Cifre4
Cerința
Se dau n numere naturale. Afișați cifrele care apar în scrierea zecimală a acestor numere, în
ordinea crescătoare a numărului de apariții. Dacă două cifre au același număr de apariții, se
va afișa mai întâi cifra mai mică,

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieșire
Programul va afișa pe ecran numărul cifrele care apar în scrierea zecimală a numerelor citite,
în ordinea cerută, separate prin exact un spațiu.

Restricții și precizări
 1 ≤ n ≤ 1000
 cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu:
Intrare

5
124 229 1322 4 534

Ieșire

5 9 1 3 4 2
#include <iostream>

using namespace std;

int v[10],n,x,i,mini,ok;

int main()

cin >> n;

for (i=1; i<=n; i++)

cin >> x;

while (x)

v[x%10]++;

x=x/10;

ok=1;

while (ok)

ok=0;

mini=9999;

for (i=0; i<=9; i++)

if (v[i]<mini&&v[i]!=0)

ok=1;

mini=v[i];

if (ok)
for (i=0; i<=9; i++)

if (v[i]==mini)

cout << i << " ";

v[i]=0;

return 0;

#239 NrLipsa
Cerinţa
Se dau mai multe numere naturale cu cel mult 9 cifre fiecare. Să se determine cele mai mari
două numere de 3 cifre care nu se găsesc printre numerele date.

Date de intrare
Fişierul de intrare nrlipsa.in conţine cel mult 100.000 de numere, dispuse pe mai multe
linii, numerele de pe fiecare linie fiind separate prin unul sau mai multe spaţii.

Date de ieşire
Fişierul de ieşire nrlipsa.out va conţine pe prima linie cele mai mari două numere de trei
cifre care nu apar în fişierul de intrare, ordonate descrescător, separate prin exact un spaţiu.

Restricţii şi precizări
 dacă nu există două numere de trei cifre care să nu se afle în fişierul de intrare atunci se va
afişa mesajul NU.

Exemplu:
nrlipsa.in

12 2345 123 67 989 6 999


123 67 989 999
nrlipsa.out

998 997

#include <fstream>

using namespace std;


ifstream fin ("nrlipsa.in");
ofstream fout ("nrlipsa.out");
int a,x[1000],nr,celmaimare,celmaimic;
int main()
{
for (a=100;a<=999;a++)
x[a]=0;
while (fin >> a) //citim nr
{
if (a<=999) //ne intereseaza numerele cu 3 cifre
x[a]=1; //adica sunt marcate cele date de tastatura
}
nr=0; //arata cand gasesc primele doua numere
for (a=999;a>=100 && nr<2;a--)
if (x[a]==0)
{
nr++;
celmaimare=celmaimic;
celmaimic=a;
}
if (nr<2)
fout << "NU";
else
fout << celmaimare << " " << celmaimic;
return 0;
}
#247 CifreOrd1
Cerinţa
Se dau mai multe numere naturale, fiecare cu cel mult 9 cifre. Să se afişeze, în ordine
descrescătoare, toate cifrele care apar în numerele date.

Date de intrare
Fişierul de intrare cifreord1.in conţine cel mult 10.000 numere naturale, dispuse pe mai
multe linii.

Date de ieşire
Fişierul de ieşire cifreord1.out va conţine cifrele determinate, ordonate descrescător,
câte 20 pe o linie, valorile de pe fiecare linie fiind separate prin spaţii. Ultima linie a
fişierului poate conţine mai puţin de 20 de cifre.

Exemplu:
cifreord1.in

301941 81912 83392


776996 431446

cifreord1.out

9 9 9 9 9 8 8 7 7 6 6 6 4 4 4 4 3 3 3 3
2 2 1 1 1 1 1 0
#include <fstream>
using namespace std;

ifstream fin("cifreord1.in");
ofstream fout("cifreord1.out");
int a[10],x,i,j;
int main(){
while(fin >> x)
do
{
a[x%10]++;
x/=10;
}
while(x);

x = 0;
for( i=9 ; i>=0 ; --i)
for( j = 1 ; j<= a[i] ; ++j)
{
fout << i << " ";
x ++;
if(x%20 == 0)
fout << endl;
}
return 0;
}

#2669 Count5
Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente din
vector sunt formate din valori cu aceeași sumă a cifrelor.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii,
reprezentând elementele vectorului.

Date de ieșire
Programul afișează pe ecran numărul C, reprezentând valoarea cerută.

Exemplu:
Intrare

6
51 842 15 28 77 132

Ieșire

Explicație
Perechile de elemente cu aceeaşi sumă cifrelor sunt:
51 15
51 132
842 77
15 132

#include <iostream>

using namespace std;


int v[100],n,i,x,s,Max;
long long nrap;
int main()
{
cin >> n;
for (i=1;i<=n;i++)
{
cin >> x;
s=0;
while (x)
{
s=s+x%10;
x=x/10;
}
v[s]++;
if (s>Max)
Max=s;
}
nrap=0;
for (s=0;s<=Max;s++)
nrap=nrap+((v[s]-1)*v[s])/2;
cout << nrap;
return 0;
}

#1306 SumChef
Cerința
Fiind dat un şir cu n elemente numere naturale, să se calculeze suma
cuburilor cifrelor tuturor numerelor din şir.

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

Date de ieșire
Programul va afișa pe ecran numărul S, reprezentând suma cuburilor
cifrelor tuturor numerelor din şir .

Restricții și precizări
 1 ≤ n ≤ 2.000.000
 numerele din şir au cel mult 4 cifre
Exemplu:
Intrare

3
24 120 51

Ieșire

207

Explicație
Suma cuburilor cifrelor numerelor din şir este S=2 +4 +1 +2 +0 +5 +1 =207.
3 3 3 3 3 3 3

#include <iostream>

using namespace std;


int n,i,x;
long long s;
int main()
{
cin >> n;
for (i=1;i<=n;i++)
{
cin >> x;
while (x)
{
s=s+(x%10)*(x%10)*(x%10);
x=x/10;
}
}
cout << s;
return 0;
}
#797 SubNumar
Un număr natural x, format din exact două cifre, este numit sub-număr al unui număr
natural y dacă cifrele lui x apar, în aceeași ordine, pe ranguri consecutive, în numărul y.
Exemplu: 21 este sub-număr al lui 12145, al lui 213, al lui 21, dar nu și al lui 123 sau al
lui 231.

Cerința
Fișierul de intrare conține cel mult 1.000.000 de numere naturale. Se cere să se afișeze în
fișierul de ieșire, în ordine descrescătoare, sub-numerele care apar de cele mai multe ori în
scrierea numerelor date.

Date de intrare
Fișierul de intrare subnumar.in conține cel mult 1.000.000 de numere naturale cu cel
puțin 2 cifre, separate prin câte un spațiu, dispuse pe mai multe linii.

Date de ieșire
Fișierul de ieșire subnumar.out va conține pe prima linie valorile cerute, separate prin câte
un spațiu.

Exemplu:
subnumar.in

393 17775787 72194942 12121774

subnumar.out

77 21
#include <fstream>

using namespace std;


ifstream fin ("subnumar.in");
ofstream fout ("subnumar.out");
int x,fv[1000001],c,maxi,i;
int main()
{
while (fin>>x)
{
while (x>9)
{
c=x%100;//perechile zecimale
fv[c]++; //a aparut perechea deci
x=x/10;
}
}
maxi=0;
for (i=10;i<=99;i++)
{
if (fv[i]>maxi)
maxi=fv[i];
}
for (i=99;i>=10;i--)
{
if (fv[i]==maxi)
fout << i << " ";
}
return 0;
}

#2837 Intervale5
Cerința
Se dă un șir de cel mult un milion de numere naturale din intervalul [0,10 ]. Se cere să se
2

determine toate perechile distincte formate din termeni ai șirului dat, x și y (y-x≥2), astfel
încât să nu existe niciun termen al șirului care să aparțină intervalului (x,y). Dacă nu există
nicio astfel de pereche, se afișează mesajul nu exista.

Date de intrare
Fișierul de intrare intervale5.in conține pe prima linie elementele șirului, separate prin
spații.

Date de ieșire
Fișierul de ieșire intervale5.out va conține perechile găsite, câte una pe linie, în ordine
strict crescătoare, separate printr-un spațiu, iar dacă nu există nicio astfel de pereche, se
afișează mesajul nu exista.

Restricții și precizări
 pentru determinarea numerelor cerute utilizați un algoritm eficient din punctul de vedere al
timpului de executare: recomandă evitarea memorării elementelor șirului într-un tablou sau
în altă structură de date similară;

Exemplu:
intervale5.in

5 9 0 8 10 11 12 13 15 14 6 7 40 10 0 0 5 41 95 7

intervale5.out

0 5
15 40
41 95

#include <fstream>

using namespace std;


ifstream cin ("intervale5.in");
ofstream cout ("intervale5.out");
int x,fv[1000001],maxi=-1,i,j,k,cate,ok;
int main()
{
while (cin>>x)
{
fv[x]=1;
if (x>maxi)
maxi=x;
}
for (i=0; i<=maxi-2; i++)
for (j=i+2; j<=maxi; j++)
{
ok=1;
for (k=i+1; k<j; k++)
if (fv[k]==1)
ok=0;
if (ok && fv[i]==1 && fv[j]==1)
cout << i << " " << j << endl,cate++;
}
if (!cate)
cout << "nu exista";
return 0;
}

#4147 NumarareCifre
Cerinţa
Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente din
vector au același număr de cifre.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii,
reprezentând elementele vectorului.

Date de ieşire
Programul afișează pe ecran numărul c, reprezentând valoarea cerută.

Restricţii şi precizări
 1 ≤ n ≤ 100000
 elementele vectorului vor fi cuprinse între 0 și 1000000000

Exemplu:
Intrare

6
13 3 8 700 9 25

Ieșire

Explicație
Perechile de elemente cu același număr de cifre sunt:
3 8 – cu câte o cifră
3 9 – cu câte o cifră
8 9 – cu câte o cifră
13 25 – cu câte 2 cifre

#include <iostream>

using namespace std;


long long n,i,x,nrcif,v[30],nrap,Maxcif;
int main()
{
cin >> n;
for(i = 1; i <= n; i ++)
{
cin >> x;
nrcif=0;
if(x==0)
nrcif=1;
while (x)
{
nrcif++;
x=x/10;
}
v[nrcif]++;
if (nrcif>Maxcif)
Maxcif=nrcif;
}
nrap=0;
for (nrcif=0;nrcif<=Maxcif;nrcif++)
nrap=nrap+((v[nrcif]-1)*v[nrcif])/2;
cout << nrap;
return 0;
}

#809 NrLipsa1
Cerința
Fișierul de intrare conține cel puțin 3 și cel mult 1.000.000 de numere naturale. Se cere să
se afișeze în fișierul de ieșire, separate printr-un spaţiu, două numere distincte, anume cel mai
mic număr par cu două cifre și cel mai mare număr par cu două cifre care NU fac parte din
şir.
Dacă nu există două astfel de valori, în fișierul de ieșire se afişează mesajul nu exista.

Date de intrare
Fișierul de intrare nrlipsa1.in conține cel puțin 3 și cel mult 1.000.000 de numere
naturale, separate prin câte un spațiu, dispuse pe mai multe linii.

Date de ieșire
Fișierul de ieșire nrlipsa1.out va conține pe prima linie valorile cerute, separate prin câte
un spațiu, sau mesajul nu exista.

Restricții și precizări
 numerele din fișierul de intrare vor fi din intervalul (0, 1.000.000.000)

Exemplu:
nrlipsa1.in

7 2 40 5 10 15 11 12 18 350

nrlipsa1.out

14 98

#include <fstream>

using namespace std;


ifstream fin ("nrlipsa1.in");
ofstream fout ("nrlipsa1.out");
int Max,Min,n,x,a[1000001];
int main()
{
while (fin >> x)
{
if (x<=98 && x>=10)
a[x]=1;
Min=Max=0;
for (x=10;x<=98;x+=2)//ma intereseaza doar cele pare
if (a[x]==0)
{
Min=x;
break;
}
for (x=98;x>=10;x-=2)
if (a[x]==0)
{
Max=x;
break;
}

}
if (Min==Max)
fout << "nu exista";
else
fout << Min << " " << Max;
return 0;
}

#2843 Puteri6
Cerința
Se dă un număr natural n (1≤n≤10 ), și un șir cu cel mult 1000000 de elemente, numere
6

naturale de forma 10 (0≤p≤9). Se cere să se afișeze numărul care ar apărea pe poziția n în


p

șirul ordonat crescător. Dacă șirul are mai puțin de n termeni, se afișează mesajul Nu
exista.

Date de intrare
Fișierul de intrare puteri6.in conține pe prima linie numărul n, iar pe a doua linie
elementele șirului dat, separate prin spații.

Date de ieșire
Fișierul de ieșire puteri6.out va conține pe prima linie numărul care ar apărea pe
poziția n în șirul ordonat crescător sau mesajul Nu exista, dacă șirul are mai puțin
de n termeni.

Restricții și precizări
 Pentru determinarea numărului cerut se utilizează un algoritm eficient din punctul de vedere
al timpului de executare. Se recomandă evitarea memorării valorilor elementelor din șir într-
un tablou sau în altă structură de date similară.

Exemplu
puteri6.in

5
100 100000 1 100000 1000 100 10

puteri6.out

1000

#include <fstream>
using namespace std;
ifstream fin ("puteri6.in");
ofstream fout ("puteri6.out");
long long a[10],p,k,n,x,i,m;
int main()
{
fin >> n;
while (fin >> x)
{
p=0;
while (x%10==0)
{
p++;
x=x/10;
}
a[p]++; //de cate ori apare 10 la puterea p
m++; //cate elemente sunt pt cazul special
}
if (m<n)
fout << "Nu exista";
else
{
k=0;
for (i=0; i<=9&& k<n; i++)
k=k+a[i];
p=1;
for (k=1; k<i; k++) //in primul for se mareste i ul cu inca unu si trebuie
scazut
p=p*10;
fout << p;
}
return 0;
}

#1744 NrLipsa2
Cerința
Fișierul de intrare conține cel mult 1.000.000 de numere întregi. Se cere să se afișeze în
fișierul de ieșire cel mai mic număr din intervalul [-100,100] care nu apare în fișierul de
intrare.
Dacă nu există un astfel de număr se va afișa mesajul nu exista.

Date de intrare
Fișierul de intrare nrlipsa2.in conține cel mult 1.000.000 de numere întregi, separate
prin câte un spațiu, dispuse pe mai multe linii.

Date de ieșire
Fișierul de ieșire nrlipsa2.out va conține pe prima linie valoarea cerută, sau mesajul nu
exista.

Restricții și precizări
 numerele din fișierul de intrare vor fi din intervalul [-1.000.000, 1.000.000]

Exemplu:
nrlipsa2.in

80 -190 -149 165 -58 150 -8 -100 -99 65

nrlipsa2.out

-98

#include <fstream>

using namespace std;


ifstream fin ("nrlipsa2.in");
ofstream fout ("nrlipsa2.out");
int x[201],a,ok,i;
int main()
{
while (fin>>a)
if (a>=0 and a<=100)
x[a]=1;
else if (a>=-100 and a<=-1)
x[100-a]=1;
for (i=-100; i<=-1; i++)
if (x[100-i]==0)
{
fout << i;
return 0;
}

for (i=0; i<=100; i++)


if(x[i]==0)
{
fout <<i;
return 0;
}
fout<< "nu exista";
return 0;
}

#276 PareImpare
Cerinţa
Se dau cel mult 100.000 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 100.000 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

#include <fstream>

using namespace std;


ifstream fin ("pareimpare.in");
ofstream fout ("pareimpare.out");
int a[100],i,x,j;
int main()
{
while (fin>>x)
a[x]=1;
for (i=1;i<=99;i=i+2)
if (a[i])
fout << i << " ";
fout << endl;
for (i=98;i>=0;i=i-2)
if (a[i])
fout << i << " ";
fout << endl;
return 0;
}

S-ar putea să vă placă și