0795 - Inaltimi 1: Difference between revisions
Adina Timiș (talk | contribs) Pagină nouă: ==Cerința== Într-o clasă sunt n elevi, numerotați de la 1 la n, băieți și fete, pentru fiecare dintre ei cunoscându-se înălțimea, exprimată în centimetri. Să se determine câte fete sunt mai scunde decât cel mai scund băiat și câți băieți sunt mai înalți decât cea mai înaltă fată. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n caracteristicile celor n elevi, astfel: o literă (B sau F), care definește sexul elevului... |
Adina Timiș (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 30: | Line 30: | ||
#0795 - Inaltimi 1 | #0795 - Inaltimi 1 | ||
def | def inaltimi(n, data): | ||
# inițializarea unor variabile pentru înălțimea maximă a fetelor, înălțimea minimă a băieților, | # inițializarea unor variabile pentru înălțimea maximă a fetelor, înălțimea minimă a băieților, | ||
# numărul de fete și numărul de băieți | # numărul de fete și numărul de băieți | ||
Line 61: | Line 61: | ||
# returnarea numărului de fete și numărului de băieți | # returnarea numărului de fete și numărului de băieți | ||
return count_girls, count_boys | return count_girls, count_boys | ||
if __name__ == "__main__": | |||
# citirea numărului de elevi | # citirea numărului de elevi | ||
n = int(input()) | n = int(input()) | ||
Line 77: | Line 79: | ||
else: | else: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
exit() | |||
# dacă lista de date nu este goală și apelarea funcției | # dacă lista de date nu este goală și apelarea funcției main | ||
if data: | if data: | ||
print("Datele de intrare corespund restricțiilor impuse.") | print("Datele de intrare corespund restricțiilor impuse.") | ||
result = | result = inaltimi(n, data) | ||
print("Numarul de fete:", result[0]) | print("Numarul de fete:", result[0]) | ||
print("Numarul de baieti:", result[1]) | print("Numarul de baieti:", result[1]) | ||
else: | else: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 20:11, 23 April 2023
Cerința[edit | edit source]
Într-o clasă sunt n elevi, numerotați de la 1 la n, băieți și fete, pentru fiecare dintre ei cunoscându-se înălțimea, exprimată în centimetri. Să se determine câte fete sunt mai scunde decât cel mai scund băiat și câți băieți sunt mai înalți decât cea mai înaltă fată.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n, iar apoi n caracteristicile celor n elevi, astfel: o literă (B sau F), care definește sexul elevului, și înălțimea acestuia, un număr natural nenul.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran două numere A B, separate printr-un spațiu, însemnând: A – numărul de fete care sunt mai scunde decât cel mai scund băiat și B – numărul de băieți care sunt mai înalți decât cea mai înaltă fată.
Restricții și precizări[edit | edit source]
- 1 ≤ n ≤ 100;
- înălțimile elevilor vor fi mai mici decât 200;
- se garantează că există cel puțin o fată și cel puțin un băiat;
Exemplul 1[edit | edit source]
- Intrare
- 5
- B 176
- F 160
- F 165
- B 180
- B 179
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 2 3
Exemplul 2[edit | edit source]
- Intrare
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0795 - Inaltimi 1
def inaltimi(n, data):
# inițializarea unor variabile pentru înălțimea maximă a fetelor, înălțimea minimă a băieților, # numărul de fete și numărul de băieți max_girl = 0 min_boy = 201 count_girls = 0 count_boys = 0 # parcurgerea fiecărei perechi (sex, înălțime), din listă for sex, height in data: # dacă sexul persoanei este feminin if sex == 'F': # verificarea dacă înălțimea este mai mică decât înălțimea minimă a băieților # și dacă da, incrementarea numărului de fete if height < min_boy: count_girls += 1 # verificarea dacă înălțimea este mai mare decât înălțimea maximă a fetelor # și dacă e așa, actualizarea valorii înălțimii maxime a fetelor if height > max_girl: max_girl = height # dacă sexul persoanei este masculin (M) else: # verificarea dacă înălțimea este mai mare decât înălțimea maximă a fetelor # incrementarea numărului de băieți, în caz afirmativ if height > max_girl: count_boys += 1 # verificarea dacă înălțimea este mai mică decât înălțimea minimă a băieților # la fel, actualizarea valorii înălțimii minime a băieților if height < min_boy: min_boy = height # returnarea numărului de fete și numărului de băieți return count_girls, count_boys
if __name__ == "__main__":
# citirea numărului de elevi n = int(input()) # inițializarea listei data = [] # verificarea restricțiile if n >= 1 and n <= 100: # citirea datelor pentru fiecare elev și adăugarea lor la listă for i in range(n): sex, height = input().split() height = int(height) # verificarea restricțiilor if height < 200: data.append((sex, height)) else: print("Datele de intrare nu corespund restricțiilor impuse.") exit() # dacă lista de date nu este goală și apelarea funcției main if data: print("Datele de intrare corespund restricțiilor impuse.") result = inaltimi(n, data) print("Numarul de fete:", result[0]) print("Numarul de baieti:", result[1]) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>