Предмет: Информатика, автор: regressor04

Старая стена

Вдоль границы двух государств когда-то была построена новая стена. Она была собрана из одинаковых кубических блоков и ее высота по всей длине была одинаковой и равнялась 5 блокам. Много лет этого было достаточно, чтобы удержать соседние королевства от нападения друг на друга. Однако инспекция, посланная одним из королей к стене, обнаружила, что во многих вертикальных рядах один или несколько верхних блоков разрушились или упали.


Инспекция составила отчет, в котором для каждого вертикального ряда блоков указана его нынешняя высота. Военное министерство сразу же заинтересовалось вопросом: где находится самый уязвимый участок стены? Участок стены является уязвимым, если он целиком состоит из подряд идущих рядов, высота которых меньше 5, и ограничен с обеих сторон либо границами стены, либо рядами блоков максимальной высоты.
принимаю


Simba2017: и что?

Ответы

Автор ответа: apxz
0

Ответ:

a = int(input())

A = list(map(int, input().split()))

m = [[0, 0, 0]]

for i in range(a):

   if A[i] != 5:

       n = []

       n.append(i + 1)

       x = 0

       while A[i] != 5:

           x += 5 - A[i]

           i += 1

           if i == a:

               break

       n.append(i)

       n.append(x)

       if n[2] > m[0][2]:

           m = [[0, 0, 0]]

           m[0] = n

       elif n[2] == m[0][2]:

           m.append(n)

for row in m:

   print(*row)

Объяснение:

a = int(input())

A = list(map(int, input().split()))

m = [[0, 0, 0]]

for i in range(a):

   if A[i] != 5:

       n = []

       n.append(i + 1)

       x = 0

       while A[i] != 5:

           x += 5 - A[i]

           i += 1

           if i == a:

               break

       n.append(i)

       n.append(x)

       if n[2] > m[0][2]:

           m = [[0, 0, 0]]

           m[0] = n

       elif n[2] == m[0][2]:

           m.append(n)

for row in m:

   print(*row)

Похожие вопросы
Предмет: Математика, автор: Аноним