0562 - Fast Food

From Bitnami MediaWiki
Revision as of 08:46, 31 October 2023 by Ghisa Catalin (talk | contribs) (Pagină nouă: == Cerinţa == Fast-food-ul de la colțul străzii are '''n''' clienți. Pentru fiecare client se cunoaște momentul în care intră în fast-food și momentul în care iese, ambele fiind exprimate în minute, numărate de la începutul perioadei de funcționare. Gigel, patronul acestui fast-food, dorește să afle perioada totală în care în local nu a fost nici un client, știind că acesta se deschide la momentul '''t1''' și se închide la momentul '''t2'''. == Date de...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Fast-food-ul de la colțul străzii are n clienți. Pentru fiecare client se cunoaște momentul în care intră în fast-food și momentul în care iese, ambele fiind exprimate în minute, numărate de la începutul perioadei de funcționare. Gigel, patronul acestui fast-food, dorește să afle perioada totală în care în local nu a fost nici un client, știind că acesta se deschide la momentul t1 și se închide la momentul t2.

Date de intrare

Programul citește de la tastatură numerele n t1 t2, iar apoi n perechi de numere naturale x y , reprezentând momentul intrării, respectiv momentul ieșirii fiecărui client din restaurant.

Date de ieșire

Programul va afișa pe ecran numărul P, reprezentând valoarea cerută.

Restricţii şi precizări

  • 1 ⩽ n ⩽ 1000
  • 1 ⩽ t1 ⩽ t2 ⩽ 10.000
  • pentru fiecare client, t1 ⩽ x ⩽ y ⩽ t2

Exemplu

Intrare
5 2 15
5 7
10 11
10 13
5 6
7 9
Ieșire
6

Rezolvare

<syntaxhighlight lang="python" line> def timp_fara_clienti(n, t1, t2, clienti):

   # Inițializăm o listă de lungimea perioadei de funcționare a localului
   timp = [0] * (t2 + 1)
   # Pentru fiecare client
   for i in range(n):
       # Marcăm minutele în care acesta se află în local cu 1
       for j in range(clienti[i][0], clienti[i][1]):
           timp[j] = 1
   # Returnăm numărul de minute în care nu a fost niciun client
   return timp[t1:t2].count(0)

if __name__ == "__main__":

   # Citim datele de intrare
   n = int(input("Numărul de clienți: "))
   t1 = int(input("Momentul deschiderii: "))
   t2 = int(input("Momentul închiderii: "))
   clienti = []
   for i in range(n):
       x = int(input("Momentul intrării clientului " + str(i+1) + ": "))
       y = int(input("Momentul ieșirii clientului " + str(i+1) + ": "))
       clienti.append((x, y))
   print("Perioada totală în care în local nu a fost nici un client: ", timp_fara_clienti(n, t1, t2, clienti))

</syntaxhighlight>

Explicatie

Intervalele în care nu este nici un client în fast-food sunt: 2-5, 9-10, 13-15.