Petrică și Ionuț au inventat un joc cu numere și cifre pe care l-au numit Cifmaxmin. Ei au la dispoziție n
cartonașe cu numere formate din cel puțin două cifre și cel mult nouă cifre, dintre care Petrică alege numerele pare și Ionuț alege numerele impare scrise pe cartonașe. Toate numerele de pe cartonașe au cifrele diferite de 0
. Jocul are regulile următoare:
- Din fiecare număr de pe cartonașul extras se alege cifra cea mai mică denumită
cmin
și cifra cea mai mare denumităcmax
. - Pentru fiecare număr par se obține cel mai mare număr format cu cifrele
cmin
șicmax
. - Pentru fiecare număr impar se obține cel mai mic număr format cu cifrele
cmin
șicmax
. - Dintre numerele determinate de Petrică se alege cel mai mare număr, dintre numerele determinate de Ionuț se alege cel mai mic număr.
- După ce au terminat de extras cele
n
cartonașe, fiecare băiat anunță ce număr a obținut conform regulilor jocului și câte cartonașe a extras. - Se folosesc toate cartonașele în joc: dacă un cartonaș are număr par, va fi ales de Petrică, dacă are număr impar va fi ales de Ionuț.
Cerința
Scrieți un program care determină și afișează patru numere, în această ordine: numărul obținut de Petrică, câte cartonașe a extras Petrică, numărul obținut de Ionuț și câte cartonașe a extras Ionuț.
Date de intrare
Fișierul de intrare cifmaxmin.in
in conține pe prima linie un număr n
, reprezentând numărul de cartonașe din joc. Pe a doua linie din fișier se află cele n
numere naturale scrise pe cartonașe, separate între ele printr-un spațiu.
Date de ieșire
Fișierul de ieșire cifmaxmin.out
va conține patru numere naturale, separate între ele printr-un spațiu, în această ordine: numărul obținut de Petrică, câte cartonașe a extras Petrică, numărul obținut de Ionuț și câte cartonașe a extras Ionuț.
Restricții și precizări
1 < n ≤ 1000
- Numerele scrise pe cartonașe sunt formate din cel puțin două cifre și cel mult nouă cifre
- Toate numerele de pe cartonașe au cifrele diferite de
0
- Cartonașele sunt alese în ordinea în care au fost așezate înainte de începerea jocului
- Există cel puțin un număr par și cel puțin un număr impar între numerele de pe cartonașe
Exemplu
cifmaxmin.in
5 1839 47536 28 2459 2496
cifmaxmin.out
92 3 19 2
Explicație
Numerele alese de Petrică sunt: 47536
, 28
și 2496
, din care obține numerele 73
, 82
și 92
. El a extras 3
numere și numărul cel mai mare este 92
. Astfel, din numărul 47536
cifra minimă este 3
și cifra maximă este 7
și se obține numărul 73
etc.
Numerele alese de Ionuț sunt 1839
și 2459
, din care obține numerele 19
și 29
. El a extras 2
numere și numărul cel mai mic este 19
.
#include <bits/stdc++.h> using namespace std; ifstream cin("cifmaxmin.in"); ofstream cout("cifmaxmin.out"); int maxi = 1, mini = 100; int main(){ int n; cin >> n; int c1=0, c2=0; for(int i = 1; i <= n; ++i){ int x; cin >> x; if(x % 2 == 0){ c1++; int cmin = 10, cmax = 0; while(x){ if(x % 10 > cmax) cmax = x % 10; if(x % 10 < cmin) cmin = x % 10; x/=10; } int nr = cmax * 10 + cmin; if(nr > maxi) maxi = nr; } else{ c2++; int cmin = 10, cmax = 0; while(x){ if(x % 10 > cmax) cmax = x % 10; if(x % 10 < cmin) cmin = x % 10; x/=10; } int nr = cmin * 10 + cmax; if(nr < mini) mini = nr; } } cout << maxi << ' ' << c1 << ' ' << mini << ' ' << c2; }