Решить на pythonДан массив целых чисел A[N]. Требуется найти непрерывный отрезок
массива, сумма элементов которого максимальна.
Входные данные
В первой строке записано число N (1 ≤ N ≤ 10000).
Во второй строке записаны через пробел элементы массива.
Выходные данные
В первой строке записаны индексы начала и конца искомого отрезка.
Во второй строке записана сумма элементов этого отрезка.

1 Окт 2019 в 14:40
197 +1
0
Ответы
1
Функция для нахождения максимальной суммы непрерывного отрезка

def max_subarray_sum(arr):
max_sum = arr[0]
current_sum = arr[0]
start = 0
end = 0
current_start = 0

for i in range(1, len(arr)):
if arr[i] > current_sum + arr[i]:
current_sum = arr[i]
current_start = i
else:
current_sum = current_sum + arr[i]
if current_sum > max_sum:
max_sum = current_sum
start = current_start
end = i
return start, end, max_sumЧтение входных данных

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

Нахождение индексов начала и конца искомого отрезка

start, end, max_sum = max_subarray_sum(A)

Вывод результатов

print(start + 1, end + 1)
print(max_sum)

19 Апр 2024 в 18:48
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 091 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир