Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- arr = [140, 9, -3, -1, 76, -7, 4, 73]
- s = [[0, 0]] #список предыдущих подпоследовательностей
- min_len = 0 #минимальная длина подпоследовательности, содержащей макс. сумму
- max_sum = 0 #максимальная сумма подпоследовательности
- for num in arr:
- #генерируем нынешнее подпоследовательности с текущим числом
- s = [[last_sum + num, last_len + 1] for last_sum, last_len in s]
- s.append([num, 1]) #также добавим случай, когда в подпоследовательности будет только 1 число (мы с тобой этот момент разбирали)
- for current_sum, current_len in s: #теперь проверим все текущие подпоследовательности
- if current_sum % 73 == 0:
- if current_sum > max_sum:
- max_sum = current_sum
- min_len = current_len #т. к. на данный момент иных последовательностей еще не найдено
- elif current_sum == max_sum and current_len < min_len:
- min_len = current_len
- print(min_len)
Add Comment
Please, Sign In to add comment