2671 - Elevi Și Bănci

From Bitnami MediaWiki
Revision as of 09:28, 7 May 2023 by Adrian (talk | contribs) (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...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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 de ieșire

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 "Datele de intrare nu corespund restricțiilor impuse".

Restricții și precizări

  • 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

Intrare
2
3
5
5
Ieșire
Datele de intrare corespund restricțiilor impuse
45
20


Exemplu 2

Intrare
0
3
5
5
Ieșire
Nu au fost respectate cerintele impuse


Rezolvare

<syntaxhighlight lang="python" line>

  1. 2671 - EleviSiBanci

def validare(elevi_1, elevi_in_picioare, elevi_2, banci_neocupate):

   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):

   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__':

   elevi_1 = int(input())
   elevi_in_picioare = int(input())
   elevi_2 = int(input())
   banci_neocupate = int(input())
   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)

numar_cutii()

</syntaxhighlight>