Форум » Обработка числовых последовательностей » Задача 78 из темы 27 » Ответить

Задача 78 из темы 27

never: Добрый день! Решение, приведенное на сайте, даёт правильную длину, но возвращаемая сумма не делится на 37. Для файла А программа выдаёт число 39882, - оно не делится на 37. Для файла В - 49985362. Оно тоже не делится на 37. Или я что-то не так понимаю?

Ответов - 1

Danov: never пишет: Для файла А программа выдаёт число 39882, - оно не делится на 37. Для файла В - 49985362. Оно тоже не делится на 37. Или я что-то не так понимаю? Похоже что ошибка в решении. Вот переборный алгоритм, который выдает сумму 40478 из 85 элементов для задачи А. [pre2]### var a := ReadAllText('27-78a.txt').ToIs[1:]; var smax,l:int; for var i:=0 to a.H do begin var s := 0; for var j:=i to a.H do begin s += a[j]; if (a[ i]+a[j]).D(73)and s.D(37) then begin if s>smax then begin smax := s; l := j-i+1; end; if (s=smax) and (j-i+1<l) then l := j-i+1; end; end; end; print(l, smax, smax mod 37) n,*a = [*map(int,open('27-78a.txt'))] smax = L = 0 for i in range(n): s = 0 for j in range(i,n): s += a[j] if (a[ i]+a[j])%73 + s%37 == 0: if s>=smax: smax,L = s,j-i if s==smax and j-i<L: L = j-i print(L+1,smax,smax%37)[/pre2]



полная версия страницы