На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Не зарегистрирован
ссылка на сообщение  Отправлено: 15.11.22 19:31. Заголовок: №5527 Не сходится ответ


n_min=10000
n_max=0
kol=0
sum_max=0
f = open('17.21.txt')
a=[int(i) for i in f]
for i in range (len(a)):
if (i%100==52 and i <n_min):
n_min = i
if (i%100==52 and n_max <i):
n_max = i
for i in range (len(a)-1):
if ((a< (n_max-n_min)) and (a[i+1] >=(n_max-n_min)) or (a>= (n_max-n_min)) and (a[i+1] <(n_max-n_min))):
kol+=1
if sum_max< (a+a[i+1]):
sum_max=a+a[i+1]
print(kol,' ',sum_max)

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]





Сообщение: 4
ссылка на сообщение  Отправлено: 10.06.23 00:45. Заголовок: Тоже не сходится ответ


Вот "правильное" решение:
 
file = open("17-345.txt")
nums = list(map(int, file.read().split()))
nums52 = [] #числа, оканчивающиеся на 52
nm = []
for i in nums:
if i % 100 == 52:
nums52.append(i)
d = max(nums52) - min(nums52)

s = [] #список сумм подходящих пар
for i in range(1, len(nums)):
if nums[ i] < d != nums[ i-1] < d: # != отсеивает варианты, в которых оба числа меньше d или ни одно из них.
s.append(nums[ i]+nums[ i-1])
print(len(s), max(s))
#777 16966


На сайте в качестве ответа указано 214 18188, но у меня получается 777 16966, и не могу понять, в чём ошибка.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 29
ссылка на сообщение  Отправлено: 10.06.23 19:26. Заголовок: a = list(map(int, o..


 
a = list(map(int, open("17-345.txt")))
max_52 = max(int(c) for c in a if c%100==52)
min_52 = min(int(c) for c in a if c%100==52)
razn = max_52 - min_52
a2 = []

for i in range(len(a) -1 ):
if (a < razn) + (a[i+1] < razn) == 1:
a2.append(a+a[i+1])
print(len(a2), max(a2))



У меня все сошлось. У вас, как мне кажется, ошибка в этом "отсеивании". Поставьте скобки.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 10
ссылка на сообщение  Отправлено: 13.06.23 09:53. Заголовок: Спасибо!


Вы правы, действительно дело было в скобках.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1915
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет