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

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

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

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





Сообщение: 1
ссылка на сообщение  Отправлено: 29.03.24 10:44. Заголовок: Евич. ЕГЭ-2023. Вар 7. 27 задача


Всем привет. Привожу задачу из сборника Евича

По каналу связи каждую секунду передается положительное целое число, все числа не превышают 10000. Передача происходит мгновенно. Необходимо вычислить минимальное кратное 3 произведение двух чисел, между моментами передачи которых прошло не менее 5 секунд. Если такое значение не удается получить, то следует выввести 0.

Мой код
 
lst = []
for _ in range(5):
lst.append(int(f.readline()))

p = 10**10
mn = 10 ** 10
for i in range(5, n):
x = int(f.readline())
mn = min(mn, lst[0])
if mn % 3 == 0 or x % 3 == 0:
p = min(p, mn*x)
lst.pop(0)
lst.append(x)
print(p)


Рассуждаю по типу очереди(FIFO):
1. записываю первые 5 в массив
2. в цикле достаю новое значение, ищу минимум из текущего и первого в очереди
3. считаю минимальное произведение по условию
4. удаляю первый, добавляю новый.

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

Пример из книги сходится, файл А - тоже, а вот B - нет

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







Сообщение: 304
ссылка на сообщение  Отправлено: 29.03.24 15:37. Заголовок: Мне кажется, что вы ..


Мне кажется, что вы решаете задачу для случая, когда прошло не более 5 секунд.
Попробуйте этот код (без данных я в нем не до конца уверена, но возможно он верен)
 
s=[1,33,2,5,6,8,9,1,2,9,5]
ost=[100000,100000,100000]
mini=100000
for i in range(5,len(s)):
if s[ i]%3==0 : mini=min(mini,s[ i]*min(ost))
else: mini=min(mini,s[ i]*ost[0])
ost[s[ i-5]%3]=min(ost[s[ i-5]%3],s[ i-5])
print(mini)


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





Сообщение: 2
ссылка на сообщение  Отправлено: 01.04.24 09:56. Заголовок: Да, спасибо, все раб..


Да, спасибо, все работает

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

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