2671 - Elevi Și Bănci: Difference between revisions
Pagină nouă: == Cerința == Dacă elevii unei clase se așează câte '''elevi_1''' într-o bancă, vor rămâne '''elevi_in_picioare''' elevi în picioare, iar dacă se așează câte '''elevi_2''' într-o bancă, vor rămâne '''banci_neocupate''' bănci neocupate. Care este numărul de elevi, respectiv de bănci, din clasa respectivă? == Date de intrare == Se vor citi pe rând numerele naturale '''elevi_1''', '''elevi_in_picioare''', '''elevi_2''' și '''banci_neocupate'''. == Date d... |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 9: | Line 9: | ||
În următorul rând se va afișa pe primul rând numărul de elevi, iar pe următorul rând numărul de banci din clasa respectivă. | În următorul rând se va afișa pe primul rând numărul de elevi, iar pe următorul rând numărul de banci din clasa respectivă. | ||
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul " | În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Nu au fost respectate cerintele impuse". | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* Numerele date, precum și rezultatele calculate nu vor depăși <math>10^8</math> (este vorba de o școală intergalactică); | * Numerele date, precum și rezultatele calculate nu vor depăși <math>10^8</math> (este vorba de o școală intergalactică); | ||
Line 37: | Line 37: | ||
# 2671 - EleviSiBanci | # 2671 - EleviSiBanci | ||
def validare(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate): | def validare(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate): | ||
# Daca datele sunt invalide v-om face raise la eroarea ValueError | |||
conditii = ( | conditii = ( | ||
elevi_1 >= 0, elevi_1 <= 100000000, | elevi_1 >= 0, elevi_1 <= 100000000, | ||
Line 49: | Line 51: | ||
def elevi_si_banci(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate): | def elevi_si_banci(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate): | ||
# https://web.archive.org/web/20230520120441if_/https://i.imgur.com/YnIMzmy.png | |||
banci = (elevi_in_picioare * banci_neocupate + elevi_2) // (elevi_in_picioare - elevi_1) | banci = (elevi_in_picioare * banci_neocupate + elevi_2) // (elevi_in_picioare - elevi_1) | ||
elevi = elevi_1 * banci + elevi_2 | elevi = elevi_1 * banci + elevi_2 | ||
Line 56: | Line 59: | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
# Citim de la tastatura numerele cerute | |||
elevi_1 = int(input()) | elevi_1 = int(input()) | ||
elevi_in_picioare = int(input()) | elevi_in_picioare = int(input()) | ||
Line 61: | Line 65: | ||
banci_neocupate = int(input()) | banci_neocupate = int(input()) | ||
# Verificam daca datele introduse sunt valide | |||
# daca nu afisam mesajul corespunsador | |||
try: | try: | ||
validare(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate) | validare(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate) | ||
Line 69: | Line 75: | ||
elevi_si_banci(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate) | elevi_si_banci(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate) | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 11:14, 23 May 2023
Cerința[edit | edit source]
Dacă elevii unei clase se așează câte elevi_1 într-o bancă, vor rămâne elevi_in_picioare elevi în picioare, iar dacă se așează câte elevi_2 într-o bancă, vor rămâne banci_neocupate bănci neocupate.
Care este numărul de elevi, respectiv de bănci, din clasa respectivă?
Date de intrare[edit | edit source]
Se vor citi pe rând numerele naturale elevi_1, elevi_in_picioare, elevi_2 și banci_neocupate.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse". În următorul rând se va afișa pe primul rând numărul de elevi, iar pe următorul rând numărul de banci din clasa respectivă.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Nu au fost respectate cerintele impuse".
Restricții și precizări[edit | edit source]
- Numerele date, precum și rezultatele calculate nu vor depăși (este vorba de o școală intergalactică);
- Este posibil ca acea clasă să fie goală…
Exemplu 1[edit | edit source]
- Intrare
- 2
- 3
- 5
- 5
- Ieșire
- Datele de intrare corespund restricțiilor impuse
- 45
- 20
Exemplu 2[edit | edit source]
- Intrare
- 0
- 3
- 5
- 5
- Ieșire
- Nu au fost respectate cerintele impuse
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 2671 - EleviSiBanci
def validare(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate):
# Daca datele sunt invalide v-om face raise la eroarea ValueError
conditii = ( elevi_1 >= 0, elevi_1 <= 100000000, elevi_in_picioare >= 0, elevi_in_picioare <= 100000000, elevi_2 >= 0, elevi_2 <= 100000000, banci_neocupate >= 1, banci_neocupate <= 100000000 )
if not all(conditii): raise ValueError
def elevi_si_banci(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate):
# https://web.archive.org/web/20230520120441if_/https://i.imgur.com/YnIMzmy.png banci = (elevi_in_picioare * banci_neocupate + elevi_2) // (elevi_in_picioare - elevi_1) elevi = elevi_1 * banci + elevi_2
print(f"{elevi}\n{banci}")
if __name__ == '__main__':
# Citim de la tastatura numerele cerute elevi_1 = int(input()) elevi_in_picioare = int(input()) elevi_2 = int(input()) banci_neocupate = int(input())
# Verificam daca datele introduse sunt valide # daca nu afisam mesajul corespunsador try: validare(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate) except ValueError: print("Nu au fost respectate cerintele impuse") else: print("Datele de intrare corespund restricțiilor impuse")
elevi_si_banci(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate)
</syntaxhighlight>