0562 - Fast Food
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.