Аватар для Lokkie
7 / 7 / 0
Регистрация: 12.11.2009
Сообщений: 218

ЕГЭ 2016, задание №1 Тип заданий 27: разработка программы

31.10.2019, 15:35. Показов 3438. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго денька господа, начал для себя изучать питон по бесплатному онлайн курсу. Стали чота тяжко идти задачи, и тут в комментариях на курсе некий аноним оставил ссылку на похожий тест в курсе, только на задание из ЕГЭ 2016. Благополучно сохранил ссылку и забыл про неё. Сейчас заскучал, решил попробовать решить (пардон за тавтологию).
Сама задача выглядит так:
тык
Задание:
Специальная камера, установленная на перекрёстке, фиксирует количество проезжающих автомобилей, и каждую минуту по каналу связи передаёт неотрицательное целое число — количество автомобилей, проехавших перекрёсток за эту минуту. Известно, что за минуту перекрёсток может проехать не более 100 автомобилей. Необходимо найти в заданной серии показаний максимальное количество автомобилей, проехавших перекрёсток в течение пяти подряд идущих минут. Максимальное количество показаний, которое может передать камера, не превышает 1440.

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

Входные данные представлены следующим образом. В первой строке задаётся число N – общее количество переданных показаний. Гарантируется, что N>5. В каждой из следующих N строк задаётся одно положительное целое число – очередное показание камеры.

Пример входных данных:
8
5
12
27
10
4
50
7
16

Программа выводит только одно число – наибольшее количество автомобилей, проехавших перекресток за пять подряд идущих минут.

Пример выходных данных для приведённого выше примера входных данных:
103


Решить вроде решил, значение в конечном итоге мне выдавало одно - максимальную скорость за 5 подряд идущих минут в списке из n чисел. Под конец я решил слегка "модернизировать" код (простите меня настоящие программисты за такие слова), пущай выдаёт текущую максимальную скорость сразу после того, как известны скорости в первые 5 минут и пока не введены все значения до конца, пусть также рисует максимально записанную скорость в течение 5 минут на данный момент.

К чему вся тема: подходит ли такой код для решения задачи в принципе? (минуя условие о выведении лишь одного числа)
Не слишком ли он громоздкий?
Достаточно ли корректно я выполнил условия задачи про "эффективность считывания\память"?
p.s., пока что я знаком лишь с малой частью функций и методов, к примеру те же map(), lambda, .join(), isdigit(), tuple() и тем более классы\объекты в курсе еще не были (а некоторых и не будет вовсе, придётся курить другие курсы и искать литературу), так что использовал только то, что знаю.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
n = int(input())
cnt = 0
speed = []
y = 0
while cnt < n:
    x = int(input())
    cnt += 1
    speed.append(x)
    if len(speed) == 5:
        print('Max speed in 5 min:', speed[0]+speed[1]+speed[2]+speed[3])
    if len(speed) > 5:
        if speed[0] + speed[1] + speed[2] + speed[3] + speed[4] > speed[1] + speed[2] + speed[3] + speed[4] + speed[5]:
            print('Max speed in 5 min:', speed[0] + speed[1] + speed[2] + speed[3] + speed[4])
        elif speed[0] + speed[1] + speed[2] + speed[3] + speed[4] < speed[1] + speed[2] + speed[3] + speed[4] + speed[5]:
            print('Max speed in 5 min:', speed[1] + speed[2] + speed[3] + speed[4] + speed[5])
            del speed[0]
    else:
        continue
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2019, 15:35
Ответы с готовыми решениями:

Разработать приложение в среде VBA для генерации (проверки) заданий в формате ЕГЭ (14, 2016 г.)
Пример. Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w...

Разработать приложение в среде VBA для генерации (проверки) заданий в формате ЕГЭ (14, 2016 г.) и ответов к ним
Вот примерный вид

Арифметический корень (книга Мальцев Математика ЕГЭ минимум Подготовка к ЕГЭ 2016)
Помогите, может у кого есть решибник к книге Мальцев Математика ЕГЭ минимум Подготовка к ЕГЭ 2016. Если кому то не жалко времени, решите....

8
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
31.10.2019, 16:35
Лучший ответ Сообщение было отмечено Иван2103 как решение

Решение

Иван2103, Все намного проще:
Python
1
2
3
4
5
6
7
8
9
10
11
# -*- coding: utf-8 -*-
 
n = int(input())
collection = [int(input())  for _ in range(n)]
 
maximum = 0
for i in range(n - 4):
    current = sum(collection[i: i + 5])
    if current > maximum: maximum = current
 
print(maximum)
2
 Аватар для Lokkie
7 / 7 / 0
Регистрация: 12.11.2009
Сообщений: 218
31.10.2019, 18:48  [ТС]
DmFat, вот уж действительно, куда проще
Цитата Сообщение от DmFat Посмотреть сообщение
for _ in range(n)]
Вот только этого момента не пойму, видимо не было в курсе такого, что за "_" нижнее подчеркивание такое

И почему в 7 строке именно -4 ?

Только что заметил, что вместо кол-ва автомобилей, я почему-то думал, что считается скорость xD
а еще y = 0 забыл убрать
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
01.11.2019, 08:05
Иван2103,
1) Нижнее подчеркивание это для того что ты не используешь данную переменную, с таким же успехом ты можешь вставить туда "i".

2) -4 т.к. мы берем срез чисел от i до i + 5, поэтому когда мы доходим до последних 5 чисел, то останавливаем цикл, иначе при следующей итерации мы получим ошибку IndexError, т.к. срез от i позиции до конца списка будет содержать только 4 числа.
0
 Аватар для Lokkie
7 / 7 / 0
Регистрация: 12.11.2009
Сообщений: 218
01.11.2019, 08:14  [ТС]
DmFat, аааа, тогда всё понял, благодарю. Просто в курсе для таких случаев использовались любые переменные, но не символы, поэтому я и подумал, что это какая-то иная конструкция
Спасибо за разъяснения!
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.11.2019, 12:33
Лучший ответ Сообщение было отмечено Иван2103 как решение

Решение

А теперь следите за руками:
Python
1
maximum = max(sum(collection[i: i + 5]) for i in range(n - 4))
Но это уж совсем магия

Добавлено через 2 минуты
Кстати, чем хорошо решение от DmFat:
1) ввод внесен в начало и отделён от остального кода.
2) аналогично с выводом.

По сути любая задача состоит из трёх таких блоков: ввод-расчёт-вывод.

Добавлено через 2 минуты
Если не знакомы со срезами, то можно написать в более привычном виде:
Python
1
current = sum(collection[i], collection[i+1], collection[i+2], collection[i+3], collection[i+4])
3
 Аватар для Lokkie
7 / 7 / 0
Регистрация: 12.11.2009
Сообщений: 218
01.11.2019, 13:18  [ТС]
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
А теперь следите за руками:
Python
1
maximum = max(sum(collection[i: i + 5]) for i in range(n - 4))
Это ж шо такое, вычисления в одну строчку вообще?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
01.11.2019, 13:37
Лучший ответ Сообщение было отмечено Иван2103 как решение

Решение

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

Эквивалентно:
Python
1
2
3
4
ls = []
for i in range(n - 4):
    ls.append(sum(collection[i: i + 5]))
maximum = max(ls)
1
 Аватар для Lokkie
7 / 7 / 0
Регистрация: 12.11.2009
Сообщений: 218
01.11.2019, 14:08  [ТС]
Рыжий Лис, понял принял. Спасибо за новые знания
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2019, 14:08
Помогаю со студенческими работами здесь

Генерация заданий ЕГЭ
Подскажите,почему при вводе любого ответа он выдает результат &quot;Неверно&quot;??

Видеоразборы заданий по информатике из ЕГЭ
Делаю видеоразборы заданий ЕГЭ по информатике, хочу представить Вашему вниманию, жду комментариев и критики :) ...

Разработка программы «Табулирование функции», использующей процедурный тип данных
Для этого составить проект для решения уравнений по коэффициентам, вводимым с клавиатуры (вводить начальное и конечное значение Х, и шаг...

Разработать приложение в среде VBA для генерации (проверки) заданий в формате ЕГЭ (12, 2017 г.)
Разработать приложение в среде VBA для генерации (проверки) заданий в формате ЕГЭ (12, 2017 г.). Пример. В терминологии сетей TCP/IP...

2 задание ЕГЭ
В чем проблема?в чем я наложал в логике? print(&quot;X\tY\tW\tZ\tF&quot;) for x in range(2): for y in range(2): for w in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru