În baza de date a unui magazin online există n
produse. Fiecare are un cod numeric, alcătuit din cel mult nouă cifre, cu următoarea semnificație:
- prima cifră reprezintă categoria produsului;
- a doua cifră reprezintă starea produsului – pară pentru produsele existente pe stoc și impară pentru cele cu stoc epuizat;
- restul cifrelor din cod reprezintă identificatorul produsului.
Cerința
Se dau cele n
coduri ale produselor din baza de date.
1) Determinați câte produse există pe stoc și câte au stoc epuizat.
În baza de date a unui magazin online există n
produse. Fiecare are un cod numeric, alcătuit din cel mult nouă cifre, cu următoarea semnificație:
- prima cifră reprezintă categoria produsului;
- a doua cifră reprezintă starea produsului – pară pentru produsele existente pe stoc și impară pentru cele cu stoc epuizat;
- restul cifrelor din cod reprezintă identificatorul produsului.
Cerința
Se dau cele n
coduri ale produselor din baza de date.
1) Determinați câte produse există pe stoc și câte au stoc epuizat.
2) Pentru fiecare categorie, determinați lista produselor, în ordinea crescătoare a codurilor numerice.
Date de intrare
Fișierul de intrare produse.in
conține pe prima linie numerele c n
, iar pe a doua linie n
numere naturale, separate prin spații, reprezentând codurile produselor.
Date de ieșire
Dacă c=1
, fișierul de ieșire produse.out
va conține pe prima linie numerele S E
, separate printr-un un spațiu, reprezentând numărul de produse existente pe stoc, respectiv numărul de produse cu stoc epuizat.
Dacă c=2
, fișierul de ieșire produse.out
va conține mai multe linii, câte una pentru fiecare categorie de produs, în ordinea crescătoare a acestora. Fiecare linie începe cu categoria, urmată de un spațiu, apoi de codurile produselor din acea categorie, în ordine crescătoare, separate și ele prin câte un spațiu.
Restricții și precizări
1 ≤ n ≤ 1000
;- cele
n
coduri vor fi mai mari decât99
și mai mici decât1.000.000.000
; - pentru 30% din teste,
c=1
.
Exemplul 1
produse.in
1 5 15123 24897 4217 142 2736
produse.out
3 2
Explicație
Produsele existente pe stoc au codurile 24897 4217 142
, iar cele cu stoc epuizat au codurile 15123 2736
.
Exemplul 2
produse.in
2 5 15123 24897 4217 142 2736
produse.out
1 142 15123 2 2736 24897 4 4217
#include <bits/stdc++.h> using namespace std; ifstream cin("produse.in"); ofstream cout("produse.out"); int n, m, cer, a[1001]; bool epuizat(int n){ while(n > 99) n/=10; return (n % 10) % 2 == 1; } int pc(int n){ while(n>9) n/=10; return n; } int main(){ cin >> cer >> n; for(int i = 1; i <= n; ++i) cin >> a[i]; if(cer == 1){ int cnt1 = 0, cnt2 = 0; for(int i = 1; i <= n; ++i) if(epuizat(a[i])) cnt1++; else cnt2++; cout << cnt2 << ' ' << cnt1 << ' '; } else{ sort(a + 1, a + n + 1); for(int i = 1; i <= 9; ++i){ bool ok = false; for(int j = 1; j <= n; ++j) if(pc(a[j]) == i) ok = true; if(ok){ cout << i << ' '; for(int j = 1; j <= n; ++j) if(pc(a[j]) == i) cout << a[j] << ' '; cout << endl; } } } return 0; }