М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
duplenkokrist9
duplenkokrist9
15.10.2021 21:48 •  Информатика

Старая стена

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

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

👇
Ответ:
LizaLove200468
LizaLove200468
15.10.2021

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)

4,6(61 оценок)
Открыть все ответы
Ответ:
AAMB
AAMB
15.10.2021

Типовая задача на разбор случаев. Разбирать случаи будем не простым последовательным перечислением, а более сложной конструкцией из вложенных условных операторов.

Решение задачи.

Var a1, b1, c1, {коэффициенты уравнения первой прямой}

    a2,b2,c2, {коэффициенты уравнения второй прямой}

    x, y : Real; {координаты точки пересечения }

BEGIN

ReadLn( a1, b1, c1);

ReadLn( a2, b2, c2);

 If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )

 then WriteLn( 'это не прямая (прямые). ' )

 else

  if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}

   then WriteLn( 'прямые совпадают.' )

   else

    if a1*b2 = a2*b1 {условие параллельности}

     then WriteLn('прямые параллельны.')

     else begin x:=(c1*b2-c2*b1)/(b1*a2-b2*a1);

         y:=(c2*a1-c1*a2)/(b1*a2-b2*a1);

         WriteLn('координаты точки пересечения :',

        ' x = ', x : 5 : 2 , ', y = ', y : 5 : 2);

          end;

END.

4,5(67 оценок)
Ответ:
Вычисляется сумма цифр первого числа и сумма цифр второго числа.
Оба числа двузначны, то есть в каждом числе две цифры.
Максимальная цифра в десятичной системе счисления - это 9, то есть сумма двух цифр не может быть больше 18-ти (9+9=18).

Суммы цифр записаны в порядке неубывания, то есть в порядке возрастания, или равенства.

Рассмотрим каждый вариант ответа:

211 - мы можем разделить как суммы 2 и 11, оба этих числа могут быть суммой цифр двузначного числа, т.к. они не больше 18-ти.
Например, 20 => 2+0=2, 29 => 2+9=11. Они записаны в порядке возрастания, что подходит под условие задачи.

1717 - можем разделить как 17 и 17, оба числа не больше 18-ти, значит они могут быть суммой цифр двузначного числа. Записаны они не в порядке убывания, что подходит под условие задачи.

1817 - можем разделить как 1 817, 18 17, или 171 7. Варианты 1-817 и 171-7 нам не подходят, т.к. содержат числа, которые больше 18-ти, т.е. такие, которые не могут быть суммой двух цифр. Вариант 18-17 нам так же не подходит, т.к. числа записаны в порядке убывания.

1718 - можем разделить как 17 и 18, оба числа могут быть суммой двух цифр, записаны в порядке возрастания, подходят.

1719 - можем разделить как 1-719, 17-19, 171-9, все три варианта содержат числа, которые больше 18, значит этот вариант нам не подходит.

219 - можем разделить как 2-19 или 21-9, содержат числа, которые больше 18, не подохдят.

21 - можем разделить как 2 и 1, они бы нам подошли (к примеру, сумма цифр в числе 20 равна 2, в числе 10 равна 1), но записаны в порядке убывания (2 1), что не соответствует условию, не подходит.

10 - можем разделить как 1 0, не подходит, т.к. и записаны в порядке убывания, и 0 не может быть суммой цифр двузначного числа.

Получается, нам подходят числа 211, 1717, 1718, всего три числа. ответ 3
4,5(36 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ