2310 - Saci

From Bitnami MediaWiki
Revision as of 13:34, 17 March 2023 by Tamas Claudia (talk | contribs)

Sursă: [1]

Cerinţa

Pacală şi Tândală mergeau printr-o pădure. Într-un copac, ei au văzut o pasăre. - Măi, Tândală, uite o pasăre! Hai s-o prindem, s-o frigem şi s-o mâncăm boiereşte, zise Păcală lingându-şi degetele. - Că bine zici. Dar cum s-o mâncăm fără sare? Stai tu s-o păzeşti ca să nu zboare şi eu dau fuga în sat să aduc nişte sare, zise Tândală. - Du-te în pivniţa mea şi acolo vei găsi numar_saci saci, pe fiecare sac vezi că e o etichetă pe care scrie un număr; dacă numărul are toate cifrele în ordine strict crescătoare, de la stânga la dreapta, înseamnă că acel sac conţine sare, altfel conţine zahăr. Încarcă în căruţă toţi sacii cu sare şi hai cu ei încoace până păzesc eu pasărea, zise Păcală.
Ajutaţi-l pe Tândală să numere câţi saci cu sare trebuie să încarce în căruţă.

Date de intrare

De pe prima linie a fişierului saci.in se citeşte un număr natural numar_saci ce reprezintă numărul sacilor. De pe următoarele numar_saci linii se citesc valori naturale, câte una de pe fiecare linie, reprezentând numărul scris pe eticheta unui sac.

Date de ieşire

În fişierul saci.out se va afişa, pe prima linie, un număr natural ce reprezintă numărul de saci cu sare ce trebuie încărcaţi în căruţă.

Restricții și precizări

  • 1 ⩽ numar_saci ⩽ 100
  • numărul scris pe fiecare sac este un număr natural nenul, cu cel mult 8 cifre
  • 1 ⩽ interschimbari ⩽ 10

Exemplu

Intrare

saci.in

5
159
721
18
121
7
Ieșire

saci.out

3

Explicație

Sunt 5 saci. Dintre numerele cu care sunt etichetaţi saci doar 159, 18 şi 7, au cifrele în ordine strict crescătoare de la stânga la dreapta. Astfel doar 3 saci conţin sare şi trebuie încărcaţi în căruţă.

Rezolvare

<syntaxhighlight lang="python" line> fin = open("saci.in", "r") fout = open("saci.out", "w")

def cub(numar_saci: int) -> int:

   ok, p, c, cnt = 0, 10, 0, 0
   while numar_saci != 0:
       if numar_saci % 10 < p:
           c += 1
       cnt += 1
       p = numar_saci % 10
       numar_saci //= 10
   if c == cnt:
       return 1
   else:
       return 0


numar_saci = int(fin.readline()) cnt = 0 for i in range(1, numar_saci+1):

   x = int(fin.readline())
   if cub(x):
       cnt += 1

fout.write(str(cnt))

fin.close() fout.close()

</syntaxhighlight>