Автор | Сообщение |
|
Отправлено: 06.04.22 15:49. Заголовок: Задача 78 из темы 27
Добрый день! Решение, приведенное на сайте, даёт правильную длину, но возвращаемая сумма не делится на 37. Для файла А программа выдаёт число 39882, - оно не делится на 37. Для файла В - 49985362. Оно тоже не делится на 37. Или я что-то не так понимаю?
|
|
|
Ответов - 1
[только новые]
|
|
|
Отправлено: 08.04.22 09:14. Заголовок: never пишет: Для фа..
never пишет: цитата: | Для файла А программа выдаёт число 39882, - оно не делится на 37. Для файла В - 49985362. Оно тоже не делится на 37. Или я что-то не так понимаю? |
| Похоже что ошибка в решении. Вот переборный алгоритм, который выдает сумму 40478 из 85 элементов для задачи А. ### 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)
|
|
|