3403 - Produse

De la Universitas MediaWiki

Î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ât 99 și mai mici decât 1.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.

Încărcare soluție

Lipește codul aici

n, m, cer, a = 0, 0, 0, [0]*1001

def epuizat(n):

    while n > 99:

        n /= 10

    return (n % 10) % 2 == 1

def pc(n):

    while n > 9:

        n /= 10

    return n

cer, n = map(int, input().split())

for i in range(1, n+1):

    a[i] = int(input())

if cer == 1:

    cnt1 = 0

    cnt2 = 0

    for i in range(1, n+1):

        if epuizat(a[i]):

            cnt1 += 1

        else:

            cnt2 += 1

    print(cnt2, cnt1, end=' ')

else:

    a = sorted(a[1:n+1])

    for i in range(1, 10):

        ok = False

        for j in range(1, n+1):

            if pc(a[j]) == i:

                ok = True

        if ok:

            print(i, end=' ')

            for j in range(1, n+1):

                if pc(a[j]) == i:

                    print(a[j], end=' ')

            print()