Язык с программированием. Слон или не слон?

Три слепых мудреца ощупывают предмет и пытаются понять, слон это все-таки или не слон? Всем известно, что у слонов обычно бывают:

один хобот;
один хвост;
4 ноги;
2 уха;
2 глаза;
1 рот.
Ну бывают еще бивни, но это как получится, у кого-то уже сломались, у кого-то еще не выросли. Бивни (и другие части тела) считать не будем, они не определяющие.

Вам передаются наблюдения мудрецов. Нужно определить, получилось ли им наблюдать хоть одного целого слона? Или, возможно, нескольких? Или не получилось. Если до обеда так ни одного слона и не нашли, пора заканчивать.

Формат ввода
Вводятся пары строк, в первой из которых стоит целое число — количество нащупанных частей тела, во второй — название части тела, количество которой ощупали в предыдущей строке. До тех пор, пока не будет вместо части тела введено слово ОБЕД.

Формат вывода
Если получился хотя бы один полнокомплектный слон, то ввод данных нужно прекратить и вывести: Есть слон! и их количество.
Если до появления слова ОБЕД вместо названия так ни одного целого слона и не нашли, вывести: Какие-то слоны нецелые. Пошли обедать.

Пример 1
Ввод Вывод
1
нога
1
рот
2
хобот
3
нога
2
бивень
2
ухо
2
глаз
1
хвост
4
нога
4
ОБЕД
Есть слон!
1
Пример 2
Ввод Вывод
1
глаз
1
хобот
7
нога
3
животик
2
хвост
3
нога
2
бивень
5
ОБЕД
Какие-то слоны нецелые. Пошли обедать.​

abrashevamarin abrashevamarin    1   03.12.2020 12:10    55

Ответы
mironova161 mironova161  02.01.2021 12:10

leg = 0

rot = 0

xobot = 0

xvost = 0

uxo = 0

glaz = 0

i = 0

while True:

   a = int(input())

   b = input()

   if b == 'нога':

       leg += a

   elif b == 'рот':

       rot += a

   elif b == 'хобот':

       xobot += a

   elif b == 'хвост':

       xvost += a

   elif b == 'ухо':

       uxo += a

   elif b == 'глаз':

       glaz += a

   elif b == 'ОБЕД':

       break

leg //= 4

rot //= 1

xobot //= 1

xvost //= 1

uxo //= 2

glaz //= 2

while True:

   leg -= 1

   rot -= 1

   xobot -= 1

   xvost -= 1

   uxo -= 1

   glaz -= 1

   i += 1

   if leg < 0 or rot < 0 or xobot < 0 or xvost < 0 or uxo < 0 or glaz < 0:

       break

   else:

       i += 1

if i == 0:

   print('Какие-то слоны нецелые. Пошли обедать.')

else:

   print('Есть слон!')

   print(i)

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
skillvirex skillvirex  02.01.2021 12:10

c = 0

hv = 0

hb = 0

nog = 0

yh = 0

rot = 0

gl = 0

kok = ''

g = ''

while g != 'ОБЕД':

   kok = int(input())

   g = input()

   if g == 'хобот':

       hb += kok

   if g == 'хвост':

       hv += kok      

   if 'ног' in g:

       nog += kok        

   if 'ух' in g:

       yh += kok      

   if g == 'рот':

       rot += kok

   if 'гла' in g:

       gl += kok      

   if nog >= 4 and yh >= 2 and gl >= 2 and hb >= 1 and hv >= 1:

       break

s = min((nog // 4), (yh // 2), (gl // 2))

if nog < 4 or yh < 2 or hb < 1 or hv < 1 or rot < 1 or gl < 2:

   print('Какие-то слоны нецелые. Пошли обедать.')

else:

   print('Есть слон!')

   print(s)

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика