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

1 Окт 2019 в 14:40
220 +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
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир