0795 - Inaltimi 1
De la Universitas MediaWiki
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, și înălțimea acestuia, un număr natural nenul.
Date de ieșire
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
- 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
- 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
- Intrare
- 0
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare
#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.")