Привет, дружище! Круто, что ты решил проверить свой ответ. Давай сначала быстро разберёмся с задачей.
Задача говорит о поиске тройки чисел Si, Sj, Sk так, чтобы i < j < k, при этом Si > Sj и Sk > Sj, а значение выражения (Si - Sj) + (Sk - Sj) было максимально. Иными словами, нужно найти такой участок последовательности, чтобы разности между выбранными числами были как можно больше при выполнении условий.
Теперь посмотрим на правильное решение. В коде есть два прохода по списку:
- В первом запоминаем для каждого элемента максимум слева (sp_i)
- Во втором – максимум справа (sp_k) Затем перебираем все возможные позиции j (где Si и Sk как бы "раздвигаются" относительно Sj), и ищем максимум по формуле.
Проще говоря, в идеале, чтобы найти максимум выражения, нам нужно:
- найти максимум слева, который больше текущего числа (чтобы Si > Sj)
- найти максимум справа, который больше текущего числа (чтобы Sk > Sj)
Если сравнить с твоим ответом ("Ученик не дал ответ на задание"), то тут понятно, что ответ не дан, и нужно было хотя бы попытаться написать решение.
Как ты считаешь, что я объяснил? Не забудь поставить лайк или дизлайк, чтобы я мог понять, понравилось ли тебе моё объяснение!