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

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

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

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



Сообщение: 1
ссылка на сообщение  Отправлено: 19.04.20 08:18. Заголовок: Задание 27. Досрочный период (2020 г. - вариант 1.)


Обзоры в интернете вдохновили меня на написание данного решения.
Само условие:
Дана последовательность N целых положительных чисел. Рассматриваются
все пары элементов последовательности, разность которых чётна, и в этих
парах, по крайней мере, одно из чисел пары делится на 17. Порядок
элементов в паре неважен. Среди всех таких пар нужно найти и вывести пару
с максимальной суммой элементов. Если одинаковую максимальную сумму
имеет несколько пар, можно вывести любую из них. Если подходящих пар
в последовательности нет, нужно вывести два нуля.
Описание входных и выходных данных
В первой строке входных данных задаётся количество чисел
N (2 ≤ N ≤ 10 000). В каждой из последующих N строк записано одно
натуральное число, не превышающее 10 000.
Пример входных данных:
5
34
12
51
52
51
Пример выходных данных для приведённого выше примера входных данных:
51 51
Пояснение. Из данных пяти чисел можно составить три различные пары,
удовлетворяющие условию: (34, 12), (34, 52), (51, 51). Наибольшая сумма
получается в паре (51, 51). Эта пара допустима, так как число 51 встречается
в исходной последовательности дважды.
Решение:
n=int(input())
b=[0]*6
#b[0]-максимальное нечетное число не кратное 17
#b[1]-максимальное нечетное число кратное 17
#b[2]-если два максимальных нечетных числа краных 17
#b[3]-максимальное четное число не кратное 17
#b[4]-максимальное четное число кратное 17
#b[5]-если два максимальных четных числа краных 17
max_n=0
x1=x2=0
for i in range(n):
x=int(input())
if x>b[0] and x%2!=0 and x%17!=0:
b[0]=x
if x%17==0 and x%2!=0 and x>=b[1]:
b[2]=b[1]
b[1]=x
if x>b[3] and x%2==0 and x%17!=0:
b[3]=x
if x%17==0 and x%2==0 and x>=b[4]:
b[5]=b[4]
b[4]=x
#Почему цикл? Или надо прописывать все условия и выбирать два элемента или сделать все в цикле (мне так удобнее)
#К тому же в цикле всего 6 элеметнов
for i in range(len(b)-1):
for j in range(i+1,len(b)):
if (b[ i]+b[j])>max_n and (b[1]!=0 or b[4]!=0) and (b[ i]-b[j])%2==0:
max_n=(b[ i]+b[j])
x1=b[ i]
x2=b[j]
print(x1,x2)
Просьба оценить решение и высказать свои пожелания по оптимизации кода.

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







Сообщение: 238
ссылка на сообщение  Отправлено: 19.04.20 08:36. Заголовок: Оборачивайте код в ,..


Оборачивайте код в [ pre2][ /pre2], отступы пропадают.
Не вижу условия, что x%17==0 and x%2!=0 and x<b[1] and x>b[2], а также условия что x%17==0 and x%2==0 and x<b[4] and x>b[5]

Цикл можно, но не всегда.

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



Сообщение: 2
ссылка на сообщение  Отправлено: 19.04.20 09:15. Заголовок: Идея такова в b->..


Исправляю...
Исправил. Просьба указать на ошибки и привести примеры чисел, при которых программа работает не правильно.
 
n=int(input())
b=[0]*6
#b[0]-максимальное нечетное число не кратное 17
#b[1]-максимальное нечетное число кратное 17
#b[2]-если два максимальных нечетных числа кратных 17
#b[3]-максимальное четное число не кратное 17
#b[4]-максимальное четное число кратное 17
#b[5]-если два максимальных четных числа краных 17
max_n=0
x1=x2=0
for i in range(n):
x=int(input())
if x>b[0] and x%2!=0 and x%17!=0:
b[0]=x
if x%17==0 and x%2!=0 and x>=b[1]:
b[2]=b[1]
b[1]=x
if x%17==0 and x%2!=0 and b[2]==0 and x!=b[1]: ####### дописал
b[2]=x
if x>b[3] and x%2==0 and x%17!=0:
b[3]=x
if x%17==0 and x%2==0 and x>=b[4]:
b[5]=b[4]
b[4]=x
if x%17==0 and x%2==0 and b[5]==0 and x!=b[4]: ####### дописал
b[5]=x
#Почему цикл? Или надо прописывать все условия и выбирать два элемента или сделать все в цикле (мне так удобнее)
#К тому же в цикле всего 6 элеметнов
for i in range(len(b)-1):
for j in range(i+1,len(b)):
if (b[ i]+b[j])>max_n and (b[1]!=0 or b[4]!=0) and (b[ i]-b[j])%2==0:
max_n=(b[ i]+b[j])
x1=b[ i]
x2=b[j]
print(x1,x2)


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





Сообщение: 239
ссылка на сообщение  Отправлено: 19.04.20 09:22. Заголовок: 153 23 19 51 Програ..


153 23 19 51

Программа вообще не найдёт подходящую сумму (153 и 51)

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



Сообщение: 3
ссылка на сообщение  Отправлено: 19.04.20 09:49. Заголовок: Исправил




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





Сообщение: 240
ссылка на сообщение  Отправлено: 19.04.20 10:46. Заголовок: Теперь всё верно. Пр..


Теперь всё верно. Программа на 4 балла.
Если интересно, то вот решение с использованием динамического программирования


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



Сообщение: 4
ссылка на сообщение  Отправлено: 19.04.20 11:33. Заголовок: Спасибо


Насколько вероятно задание такого, примерно, типа на основном этапе экзамена?

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





Сообщение: 241
ссылка на сообщение  Отправлено: 19.04.20 11:47. Заголовок: Ну, скорее всего, за..


Ну, скорее всего, задание будет на работу с числовой последовательностью, аналогичное прошлым годам.

Конкретики мы не знаем пока. ¯\_(ツ)_/¯

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

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