- ЕГЭ по информатике
Сколько баллов можно получить за каждое задание ЕГЭ 2023 по информатике можно узнать из демоверсии текущего года.
→ демоверсия ЕГЭ 2023 по информатике
ЕГЭ 2023 информатика. Распределение баллов по заданиям.
Таблица 1
| Номер задания | Первичные баллы |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
| 8 | 1 |
| 9 | 1 |
| 10 | 1 |
| 11 | 1 |
| 12 | 1 |
| 13 | 1 |
| 14 | 1 |
| 15 | 1 |
| 16 | 1 |
| 17 | 1 |
| 18 | 1 |
| 19 | 1 |
| 20 | 1 |
| 21 | 1 |
| 22 | 1 |
| 23 | 1 |
| 24 | 1 |
| 25 | 1 |
| 26 | 2 |
| 27 | 2 |
| Всего | 29 баллов |
Система оценивания выполнения отдельных заданий и экзаменационной работы в целом
Ответы на все задания КИМ оцениваются автоматизировано.
Правильное выполнение каждого из заданий 1–25 оценивается в 1 балл. Каждое такое задание считается выполненным, если экзаменуемый дал ответ, соответствующий коду верного ответа.
За выполнение каждого задания присваивается (в дихотомической системе оценивания) либо 0 баллов («задание не выполнено»), либо 1 балл («задание выполнено»).
За верный ответ на задание 26 выставляется 2 балла; если значения в ответе перепутаны местами ИЛИ в ответе присутствует только одно верное значение (второе неверно или отсутствует), – 1 балл. В остальных случаях – 0 баллов.
За верный ответ на задание 27 выставляется 2 балла; если значения в ответе перепутаны местами ИЛИ в ответе присутствует только одно верное значение (второе неверно или отсутствует), – 1 балл. В остальных случаях – 0 баллов.
Максимальный первичный балл за выполнение экзаменационной работы – 29.
На основе результатов выполнения всех заданий работы определяются первичные баллы, которые затем переводятся в тестовые по 100-балльной шкале.
Связанные страницы:
Сейчас существует множество бесплатных инструментов, которые позволяют подготовиться к ЕГЭ и увеличить балл на 40% с минимальными временными затратами.
Наиболее эффективными являются подписки на видеокурсы. Попробовать можно с
компанией Twostu
,
тем более здесь это ничего не стоит.
Содержание
- Структура КИМ
- Что проверяется на экзамене
- Система оценивания
- Перевод первичных баллов в тестовые
- Сколько баллов нужно для поступления в вуз
- Видео по теме
- Комментарии
Структура КИМ
Первое, на что необходимо обратить внимание одиннадцатикласснику, начинающему подготовку к ЕГЭ, – спецификация. Этот документ содержит всю необходимую информацию: от перечня нормативных документов и регламента до распределения заданий в экзаменационной работе и системы оценивания. Найти его можно на официальном портале ФИПИ (Федерального института педагогических измерений).
Особо стоит отметить, что структура КИМ периодически меняется. Так, начиная с 2021 года, ЕГЭ по информатике придется сдавать не на привычных бумажных бланках, а исключительно на компьютере без доступа к интернету. Поэтому теперь в экзамен включат дополнительные практические задания, а старые письменные вопросы скорректируют. Также исключат примеры с фрагментами кода на языке Basic, поскольку он потерял актуальность. Задания можно будет выполнять на языках программирования Pyton, Pascal, C++, C#, Java, Школьный алгоритмический язык.
В контрольно-измерительные материалы ЕГЭ по информатике на 2021 год включено 27 вопросов. Из них для 18 достаточно тестирующей системы, а еще для 9 необходимо специализированное программное обеспечение. Это могут быть редакторы среды программирования, текстов и электронных таблиц.
Если говорить о содержательной части экзаменационной работы, то в нее включены задания по всем основным направлениям информатики, изучавшимся в школе. Больше всего вопросов посвящено разделам программирования, логике и алгоритмам, обработке числовой информации. Кодирование информации, системы счисления, моделирование, теория алгоритмов, устройство компьютера, хранение и поиск информации представлены 1-2 задачами.
Что проверяется на экзамене
При подготовке к экзамену важно не упустить ни одного важного момента, ведь нередко приходится пользоваться разными учебниками, да и от учителя в школе тоже многое зависит. Педагоги и репетиторы советуют не изобретать велосипед и идти четко по темам, указанным в кодификаторе. Этот документ ФИПИ разрабатывает ежегодно и включает в него только те разделы школьного курса, которые будут проверяться на ЕГЭ. Они перечислены в таблице.
Кроме того, старшеклассник должен иметь ряд навыков, необходимых для практического применения полученных теоретических знаний:
- моделирование процессов, использование электронных таблиц, составление диаграмм и графиков;
- использование языков программирования для создания программ;
- построение моделей, проведение вычислений и интерпретация результатов;
- оценка числовых параметров, объема памяти, скорости обработки и передачи данных;
- поиск и отбор нужной информацию, ее хранение;
- использование автоматизированных систем и аппаратных средств коммуникации;
- осуществление статистической обработки данных;
- соблюдение техники безопасности, правил гигиены и эргономики при работе с компьютером и другой оргтехникой.
Не все темы, которые проходили на уроках, включены в кодификатор. Некоторые из них не относятся к объектам контроля, другие не могут в рамках ЕГЭ быть объективно проверены. Задача кодификатора – унифицировать и привести к общему знаменателю все знания, полученные учениками в школе, независимо от уровня преподавания и используемых пособий.
Система оценивания
Экзамен по информатике, как и по другим предметам, сначала оценивают в первичных баллах, количество которых зависит от того, насколько трудные задачи выполнил школьник. Максимально экзаменуемый может набрать 30 баллов. По уровню сложности упражнения ЕГЭ распределены так.
| Уровень сложности заданий | Число заданий | Максимально доступный первичный балл | Процент от максимально возможного балла |
|---|---|---|---|
| Базовый | 10 | 10 | 34 |
| Повышенный | 13 | 13 | 43 |
| Высокий | 4 | 7 | 23 |
| Итого | 27 | 30 | 100 |
Различный уровень сложности упражнений дает возможность максимально полно оценить знания и потенциал одиннадцатиклассников и провести объективную градацию с учетом возможности дальнейшей учебы в вузе. По расчетам специалистов, с заданиями базового уровня справится от 60% до 90% участников, повышенный уровень будет доступен 40–60%, а задачи высокой сложности под силу менее чем 40% учащихся.
Поскольку экзаменационная работа будет выполняться на компьютере, все ответы оценит автоматизированная система. Критерии оценивания отдельных заданий ЕГЭ по информатике выглядят так:
- Упражнения №1–24 приносят 1 балл, если ответ участника соответствует коду правильного ответа, в противном случае ставится 0 баллов.
- По заданию №25 дают 2 балла при верном ответе, 1 балл – если ошибки только в одной строке ответа, а также при отсутствии одной строки или наличии одной лишней строки. При большем количестве ошибок ставят 0.
- Задачи №26 и 27 при правильном ответе оцениваются в 2 балла. Если в ответе только одно верное значение из двух или оба верные, но перепутаны местами – 1 балл, во всех остальных случаях – 0 баллов.
Следует отметить, что в 2021 году в ЕГЭ по информатике не включаются совсем простые вопросы (воспроизведение какого-то правила, термина, понятия или величины). От выпускников требуется умение решать конкретные задачи: применить на практике алгоритм, правило или умение, выбрать из нескольких предложенных наиболее подходящий алгоритм или правило и использовать его.
Перевод первичных баллов в тестовые
Набранные на экзамене первичные баллы стандартизируют под 100-балльную систему, которая используется при приеме в высшие учебные заведения. Эти баллы называют тестовыми, или вторичными. Они рассчитываются по достаточно сложному математическому алгоритму.
Периодически таблица перевода баллов изменяется. Это зависит, в первую очередь, от количества и сложности заданий КИМ. Чтобы с большой долей уверенности знать, сколько тестовых пунктов принесут первичные баллы, желательно пользоваться актуальными таблицами с официальных сайтов ФИПИ, Рособрнадзора или ЕГЭ.
В 2020 году система перевода выглядела так.
| Первичный балл | Тестовый балл |
|---|---|
| 1 | 7 |
| 2 | 14 |
| 3 | 20 |
| 4 | 27 |
| 5 | 34 |
| 6 | 40 |
| 7 | 42 |
| 8 | 44 |
| 9 | 46 |
| 10 | 48 |
| 11 | 50 |
| 12 | 51 |
| 13 | 53 |
| 14 | 55 |
| 15 | 57 |
| 16 | 59 |
| 17 | 61 |
| 18 | 62 |
| 19 | 64 |
| 20 | 66 |
| 21 | 68 |
| 22 | 70 |
| 23 | 72 |
| 24 | 73 |
| 25 | 75 |
| 26 | 77 |
| 27 | 79 |
| 28 | 81 |
| 29 | 83 |
| 30 | 84 |
| 31 | 88 |
| 32 | 91 |
| 33 | 94 |
| 34 | 97 |
| 35 | 100 |
Поскольку максимальное количество первичных баллов в 2021 году станет меньше, эта таблица будет скорректирована. Актуальная шкала появится в открытом доступе сразу после официального утверждения нового варианта КИМ по информатике.
Сколько баллов нужно для поступления в вуз
Итак, экзамен сдан, пришло время смотреть на результаты. Для получения школьного аттестата в 2020 году достаточно было набрать всего 6 первичных баллов, что в пересчете давало 40 тестовых. Это минимум, с которым далее можно идти только в колледж.
Для подачи документов в вуз Рособрнадзор в 2020 году также установил минимальный показатель ЕГЭ по информатике на уровне 40 тестовых баллов, т.е. такой же, как и для школьного аттестата. Однако большинство университетов уже давно устанавливали пороговые значения на гораздо более высоком уровне. А с 2020/2021 года по этому пути двинулось и Минобразования. Во всех 252 подведомственных вузах минимальные показатели для абитуриентов были повышены: они стартуют от 42–44 баллов, а в самых престижных университетах достигают 55–60 и даже 72–75 баллов.
Но и достижение минимального порога всего лишь дает право подать документы в вуз. Реальный средний проходной балл в большинстве случаев гораздо выше этого показателя. Также не нужно не забывать о том, что при поступлении на ту или иную специальность учитывают результаты ЕГЭ по трем предметам. В большинстве случаев будущим программистам придется налегать, кроме информатики, на математику и русский язык.
Но и это еще не все. Многие старшеклассники на протяжении учебы в школе ведут активную деятельность и имеют различные достижения. Это могут быть успехи в олимпиадах, спорте, творчестве, волонтерской и проектной деятельности, которые затем принесут дополнительные баллы при поступлении.
К примеру, Дальневосточный федеральный университет дает от 2 до 10 дополнительных баллов победителям и призерам конкурсов школьников («Ученые будущего», «Молодые профессионалы», «Сириус») и заключительных этапов олимпиад (Всероссийская олимпиада школьников, «Океан знаний», «Россия в электронном мире» и др.). Плюс 5 пунктов получат обладатели школьных аттестатов или дипломов колледжей с отличием, и даже золотой значок ГТО принесет дополнительные 2 балла, которые могут стать решающими при высокой конкуренции.
Табличка ниже наглядно показывает, как отличаются минимальные и проходные баллы в некоторых столичных и региональных университетах.
Таким образом, разница между столичными и региональными вузами видна невооруженным взглядом: проходной балл в первых заметно выше. Некоторые университеты, такие как ИТМО, изначально устанавливают такой минимальный порог, чтобы отобрать только лучших из лучших: на протяжении последних трех лет поступить на бюджет смогли только те, кто с учетом личных достижений набрал не меньше 99,8 баллов в среднем за каждый предмет.
Минимальный балл в престижных вузах нередко имеет формальное значение, отсеивая только самых слабых соискателей. На самом же деле, играет роль уровень преподавания, авторитет и имя вуза, а также востребованность конкретной специальности среди абитуриентов. Например, в МИРЭА порог для ЕГЭ по информатике установлен на уровне 42 балла, а в МАИ намного выше – 55 баллов. А в итоге, в 2019 году в обоих вузах реальный средний проходной балл был сопоставим и значительно превысил показатель 80 пунктов.
Изменения в порядке проведения ЕГЭ по информатике направлены на приближение школьной программы к реальной жизни. Изучение теоретического материала гармонично сочетается с практическими навыками, освоением языков программирования, умением логически мыслить, работать с электронными таблицами, базами данных и другим ПО. Логичным выглядит и перевод сдачи экзамена с бланков на компьютер. Предполагается, что все нововведения положительно скажутся на уровне готовности выпускников к дальнейшему получению высшего образования.
Общее количество участников экзамена в 2021 г. — 94 962 человек; продолжается тенденция ежегодного роста числа сдающих ЕГЭ по информатике. В 2020 г. экзамен сдавали 84 531 человек, в 2019 г. — 80 058 человек, что соответствует тренду на развитие цифрового сектора экономики в стране.
Доля участников ЕГЭ, не набравших минимального количества баллов в 2021 г., составила 9,20%, в то время как в 2020 г. она составляла 10,41%, а в 2019 г. — 9,55%. Таким образом, доля выпускников, не набравших минимального балла, изменилась незначительно. Доля высокобалльников в 2021 г. составила 20,05% и сопоставима с предыдущими годами.
Более подробные аналитические и методические материалы ЕГЭ 2021 года доступны по ссылке.
На нашем сайте представлены около 3200 заданий для подготовки к ЕГЭ по информатике в 2023 году. Общий план экзаменационной работы представлен ниже.
ПЛАН ЭКЗАМЕНАЦИОННОЙ РАБОТЫ ЕГЭ ПО ИНФОРМАТИКЕ 2023 ГОДА
читать полностью: спецификация.
Работа состоит из 27 заданий: базового уровня сложности 11, повышенного — 11, высокого — 5.
Работа рассчитана на 235 минут.
Обозначение уровня сложности задания: Б — базовый, П — повышенный, В — высокий.
|
Проверяемые элементы содержания и виды деятельности |
Уровень сложности задания |
Максимальный балл за выполнение задания |
Примерное время выполнения задания (мин.) |
| Задание 1. Умение представлять и считывать данные в разных типах информационных моделей (схемы, карты, таблицы, графики и формулы) |
Б |
1 |
3 |
| Задание 2. Умения строить таблицы истинности и логические схемы |
Б |
1 |
3 |
| Задание 3.Умение поиска информации в реляционных базах данных |
Б |
1 |
3 |
| Задание 4. Умение кодировать и декодировать информацию |
Б |
1 |
2 |
| Задание 5. Формальное исполнение простого алгоритма, записанного на естественном языке, или умение создавать линейный алгоритм для формального исполнителя с ограниченным набором команд, или умение восстанавливать исходные данные линейного алгоритма по результатам его работы |
Б |
1 |
4 |
| Задание 6. Определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов |
Б |
1 |
4 |
| Задание 7. Умение определять объем памяти, необходимый для хранения графической и звуковой информации |
Б |
1 |
5 |
| Задание 8. Знание основных понятий и методов, используемых при измерении количества информации |
Б |
1 |
4 |
| Задание 9. Умение обрабатывать числовую информацию в электронных таблицах |
Б |
1 |
6 |
| Задание 10. Информационный поиск средствами операционной системы или текстового процессора |
Б |
1 |
3 |
| Задание 11. Умение подсчитывать информационный объем сообщения |
П |
1 |
3 |
| Задание 12. Умение исполнить алгоритм для конкретного исполнителя с фиксированным набором команд |
П |
1 |
6 |
| Задание 13. Умение представлять и считывать данные в разных типах информационных моделей (схемы, карты, таблицы, графики и формулы) |
П |
1 |
3 |
| Задание 14. Знание позиционных систем счисления |
П |
1 |
3 |
| Задание 15. Знание основных понятий и законов математической логики |
П |
1 |
3 |
| Задание 16. Вычисление рекуррентных выражений |
П |
1 |
5 |
| Задание 17. Умение составить алгоритм обработки числовой последовательности и записать его в виде простой программы (10–15 строк) на языке программирования |
П |
1 |
14 |
| Задание 18. Умение использовать электронные таблицы для обработки целочисленных данных |
П |
1 |
8 |
| Задание 19. Умение анализировать алгоритм логической игры |
Б |
1 |
6 |
| Задание 20. Умение найти выигрышную стратегию игры |
П |
1 |
8 |
| Задание 21. Умение построить дерево игры по заданному алгоритму и найти выигрышную стратегию |
В |
1 |
11 |
| Задание 22. Построение математических моделей для решения практических задач. Архитектура современных компьютеров. Много-процессорные системы |
П |
1 |
7 |
| Задание 23. Умение анализировать результат исполнения алгоритма, содержащего ветвление и цикл |
П |
1 |
8 |
| Задание 24. Умение создавать собственные программы (10–20 строк) для обработки символьной информации |
В |
1 |
18 |
| Задание 25. Умение создавать собственные программы (10–20 строк) для обработки целочисленной информации |
В |
1 |
20 |
| Задание 26. Умение обрабатывать целочисленную информацию с использованием сортировки |
В |
2 |
35 |
| Задание 27. Умения создавать собственные программы (20–40 строк) для анализа числовых последовательностей |
В |
2 |
40 |
ОФИЦИАЛЬНАЯ ШКАЛА 2022 ГОДА
Первичный балл
Тестовый балл
Соответствие между минимальными первичными баллами и минимальными тестовыми баллами 2022 года. Распоряжение о внесении изменений в приложение № 2 к распоряжению Федеральной службы по надзору в сфере образования и науки. Перейти.
ПОРОГОВЫЙ БАЛЛ
Для поступления в вузы, подведомственные Министерству науки и высшей школы: 44 тестовых баллов. См. приказ Миннауки.
Для поступления в вузы, подведомственные Министерству просвещения: 44 тестовых баллов. См. приказ Минпроса.
ЭКЗАМЕНАЦИОННЫЕ БЛАНКИ
Правила заполнения бланков государственной итоговой аттестации. Скачать бланки в высоком качестве можно по ссылке.
ЧТО МОЖНО ВЗЯТЬ С СОБОЙ НА ЭКЗАМЕН
На экзамене по информатике и ИКТ разрешено применение компьютерной техники, не имеющей доступа к информационно-телекоммуникационной сети «Интернет», с установленным программным обеспечением, предоставляющим возможность работы с редакторами электронных таблиц, текстовыми редакторами, средами программирования. Источник.
Авторы заданий для подготовки к ЕГЭ:
Л. Н. Евич,
Д. П. Кириенко,
В. Р. Лещинер,
Ф. Ф. Лысенко,
Е. М. Островская,
К. Ю. Поляков
Н. Н. Самылкина,
Д. М. Ушаков,
Т. Е. Чуркина,
П. А. Якушкин, и др.;
материалы сайта http://ege.yandex.ru.
- ЕГЭ по информатике
Сколько баллов можно получить за каждое задание ЕГЭ 2022 по информатике можно узнать из демоверсии текущего года.
ЕГЭ 2022 информатика. Распределение баллов по заданиям.
Таблица 1
| Номер задания | Первичные баллы |
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
| 8 | 1 |
| 9 | 1 |
| 10 | 1 |
| 11 | 1 |
| 12 | 1 |
| 13 | 1 |
| 14 | 1 |
| 15 | 1 |
| 16 | 1 |
| 17 | 1 |
| 18 | 1 |
| 19 | 1 |
| 20 | 1 |
| 21 | 1 |
| 22 | 1 |
| 23 | 1 |
| 24 | 1 |
| 25 | 1 |
| 26 | 2 |
| 27 | 2 |
| Всего | 29 баллов |
Система оценивания выполнения отдельных заданий и экзаменационной работы в целом
Ответы на все задания КИМ оцениваются автоматизировано.
Правильное выполнение каждого из заданий 1–25 оценивается в 1 балл. Каждое такое задание считается выполненным, если экзаменуемый дал ответ, соответствующий коду верного ответа.
За выполнение каждого задания присваивается (в дихотомической системе оценивания) либо 0 баллов («задание не выполнено»), либо 1 балл («задание выполнено»).
За верный ответ на задание 26 выставляется 2 балла; если значения в ответе перепутаны местами ИЛИ в ответе присутствует только одно верное значение (второе неверно или отсутствует), – 1 балл. В остальных случаях – 0 баллов.
За верный ответ на задание 27 выставляется 2 балла; если значения в ответе перепутаны местами ИЛИ в ответе присутствует только одно верное значение (второе неверно или отсутствует), – 1 балл. В остальных случаях – 0 баллов.
Максимальный первичный балл за выполнение экзаменационной работы – 29.
На основе результатов выполнения всех заданий работы определяются первичные баллы, которые затем переводятся в тестовые по 100-балльной шкале.
Связанные страницы:

В таблице представлены баллы по всем предметам ЕГЭ 2022: русский язык, математика (базовый уровень), математика (профильный уровень), обществознание, физика, биология, история, химия, информатика, литература, география и иностранные языки.
Сколько первичных баллов даёт каждое задание в ЕГЭ?
| № | Количество первичных баллов | ||||||||||||
| Русс. | Мат.Б | Мат.П | Общ. | Физ. | Био. | Ист. | Хим. | Инф. | Лит. | Гео. | Ин.яз | Кит.яз | |
| 1 | 1 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | 6 | 6 |
| 2 | 1 | 1 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 7 | 1 |
| 3 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 |
| 4 | 1 | 1 | 1 | 2 | 1 | 1 | 3 | 1 | 1 | 1 | 1 | 1 | 1 |
| 5 | 1 | 1 | 1 | 2 | 1 | 1 | 2 | 1 | 1 | 6 | 2 | 1 | 1 |
| 6 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 1 | 8 | 1 | 1 | 1 |
| 7 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 |
| 8 | 5 | 1 | 1 | 2 | 2 | 2 | 1 | 2 | 1 | 1 | 2 | 1 | 1 |
| 9 | 1 | 1 | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 10 | 1 | 1 | 1 | 2 | 1 | 2 | 1 | 1 | 1 | 6 | 1 | 7 | 6 |
| 11 | 1 | 1 | 1 | 2 | 1 | 2 | 2 | 1 | 1 | 8 | 1 | 6 | 4 |
| 12 | 1 | 1 | 2 | 1 | 2 | 2 | 2 | 1 | 1 | 15 | 2 | 1 | 1 |
| 13 | 1 | 1 | 3 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | |
| 14 | 1 | 1 | 2 | 2 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | |
| 15 | 1 | 1 | 2 | 2 | 1 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | |
| 16 | 1 | 1 | 3 | 2 | 1 | 2 | 3 | 1 | 1 | 1 | 1 | 1 | |
| 17 | 1 | 1 | 4 | 2 | 2 | 2 | 3 | 1 | 1 | 1 | 1 | 1 | |
| 18 | 1 | 1 | 4 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | |
| 19 | 1 | 1 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | ||
| 20 | 1 | 1 | 3 | 1 | 2 | 3 | 1 | 1 | 1 | 1 | 1 | ||
| 21 | 1 | 1 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | |||
| 22 | 1 | 4 | 1 | 3 | 2 | 1 | 3 | 1 | 1 | ||||
| 23 | 1 | 3 | 1 | 3 | 2 | 1 | 1 | 1 | 1 | ||||
| 24 | 1 | 4 | 3 | 3 | 2 | 1 | 1 | 1 | 1 | ||||
| 25 | 1 | 4 | 2 | 3 | 1 | 1 | 1 | 1 | 1 | ||||
| 26 | 4 | 2 | 3 | 1 | 2 | 2 | 1 | 1 | |||||
| 27 | 25 | 3 | 3 | 1 | 2 | 2 | 1 | 1 | |||||
| 28 | 3 | 3 | 1 | 2 | 1 | 8 | |||||||
| 29 | 3 | 2 | 2 | 1 | 12 | ||||||||
| 30 | 4 | 2 | 2 | 1 | 5 | ||||||||
| 31 | 4 | 3 | 1 | 7 | |||||||||
| 32 | 5 | 1 | 8 | ||||||||||
| 33 | 4 | 1 | |||||||||||
| 34 | 3 | 1 | |||||||||||
| 35 | 1 | ||||||||||||
| 36 | 1 | ||||||||||||
| 37 | 1 | ||||||||||||
| 38 | 1 | ||||||||||||
| 39 | 6 | ||||||||||||
| 40 | 14 | ||||||||||||
| 41 | 1 | ||||||||||||
| 42 | 4 | ||||||||||||
| 43 | 5 | ||||||||||||
| 44 | 10 | ||||||||||||
| 45 | |||||||||||||
| Всего | 58 | 21 | 31 | 57 | 54 | 59 | 38 | 56 | 29 | 55 | 43 | 100 | 80 |
Посмотреть демоверсии ЕГЭ 2022:
Официальные демоверсии ЕГЭ 2022 от ФИПИ по всем предметам
* Олимпиады и конкурсы
* Готовые контрольные работы
* Работы СтатГрад
* Официальные ВПР
Поделиться:

Количество баллов за каждое задание по предметам ЕГЭ:
Русский язык:
- 1 балл – за 1-7, 9-15, 17-25 задания
- 2 балла – 16.
- 4 балла – 26.
- 5 баллов – 8.
- 25 балла — 27 (критерии оценивания сочинения ЕГЭ)
Всего 59 баллов.
Математика база:
- 1 балл — за 1–20 задания.
Всего: 20 баллов
Математика профиль:
- 1 балл — за 1-12 задания.
- 2 балла — 13-15.
- З балла — 16, 17.
- 4 балла — 18, 19.
Всего: 32 баллов
Обществознание:
- 1 балл — за 1, 2, 3, 10, 12, 16 задания.
- 2 балла — 4-9, 11, 13-15, 17-22.
- 3 балла — 23, 24, 26, 27.
- 4 балла — 25, 28.
- 6 баллов — 29.
- Критерии оценивания заданий с развёрнутым ответом
Всего: 64 баллов.
Биология:
- 1 балл — за 1-3, 6 задания.
- 2 балла — 4, 5, 7-22.
- 3 балла — 23-28.
Всего: 58 баллов.
История:
- 1 балл — за 1, 4, 10, 13-15, 18, 19 задания.
- 2 балла — 2, 3, 5-9, 12, 16, 17, 20-22.
- 3 балла — 11, 23.
- 4 балла — 24.
- 12 баллов — 25.
Всего: 56 баллов.
Химия:
- 1 балл — за 1-6, 11-15, 19-21, 26-29 задания.
- 2 балла — 7-10, 16-18, 22-25, 30, 31.
- 3 балла — 35.
- 4 балла — 32, 34.
- 5 баллов — 33.
Всего: 60 баллов.
Информатика:
- 1 балл — за 1-24 задания
- 2 балла — 25-27.
Всего: 30 баллов.
Литература:
- 1 балл — за 1-7, 10-14 задания.
- 6 балла — 8, 15.
- 10 баллов — 9, 16.
- 14 балла — 17.
Всего: 58 баллов.
Физика:
- 1 балл — за 1-4, 8-10, 13-15, 19, 20, 22, 23, 25, 26, задания.
- 2 балла — 5-7, 11, 12, 16-18, 21, 24, 28.
- 3 балла — 27, 29-32.
Всего: 53 баллов.
География:
- 1 балл — за 1, 2, 5-10, 12, 13, 16, 17, 19-27 задания.
- 2 балла — 3, 4, 11, 14, 15, 18, 28-34.
Всего: 47 баллов.
Иностранные языки:
- 1 балл — за 3-9, 12-38, 41 задания.
- 5 балла — 42.
- 6 баллов — 1, 11, 39.
- 7 баллов — 2, 10, 43,44.
- 14 балла — 40.
Всего: 100 баллов.
Шкала переводов баллов ЕГЭ 2022 в 100 бальную систему
Перевод баллов ЕГЭ 2022 в оценки
Минимальные баллы ЕГЭ
Расписание ЕГЭ на 2022: даты проведения экзаменов
ПОДЕЛИТЬСЯ
Официальное распределение баллов ЕГЭ 2022 года по каждому предмету и минимальные проходные баллы для поступления в ВУЗ 2021-2022 учебный год. Сколько первичных баллов даёт каждое задание в КИМах ЕГЭ?
Скачать приказ о минимальных баллах ЕГЭ 2022
Распределение баллов ЕГЭ 2022 по каждому предмету:
Минимальные проходные баллы ЕГЭ 2022 для поступления в ВУЗ:
| Общеобразовательный предмет | Минимальное количество баллов ЕГЭ 2022 |
| Русский язык | 40 |
| Математика | 39 |
| Физика | 36 |
| Обществознание | 42 |
| История | 35 |
| Информатика и информационно-коммуникационные технологии | 40 |
| Иностранный язык | 30 |
| Литература | 32 |
| Биология | 36 |
| География | 40 |
| Химия | 36 |
Смотрите также на нашем сайте:
Новые демоверсии ЕГЭ 2022 по всем предметам от ФИПИ с ответами
ЕГЭ по информатике в 2022 году оценивается также как и в 2020, первичными баллами. Колличество первичных баллов по всем заданиям — это общий первичный балл, он переводится во вторичный (тестовый) с помощью таблицы.
| Первичные баллы | Тестовые баллы |
|---|---|
| 1 | 8 |
| 2 | 15 |
| 3 | 22 |
| 4 | 29 |
| 5 | 37 |
| 6 | 43 |
| 7 | 46 |
| 8 | 48 |
| 9 | 50 |
| 10 | 53 |
| 11 | 55 |
| 12 | 57 |
| 13 | 60 |
| 14 | 62 |
| 15 | 65 |
| 16 | 67 |
| 17 | 69 |
| 18 | 71 |
| 19 | 74 |
| 20 | 76 |
| 21 | 78 |
| 22 | 81 |
| 23 | 84 |
| 24 | 85 |
| 25 | 88 |
| 26 | 90 |
| 27 | 93 |
| 28 | 95 |
| 29 | 98 |
| 30 | 100 |
Таблица перевода первичных баллов во вторичные является ориентировочной
Максимальный первичный балл за экзамен — 30.
Если экзаменуемый набрал менее 5 первичных баллов, экзамен считается не сдан, поступить в ВУЗ нельзя.
Если за экзамен было набрано от 6 до 21 первичных баллов можно поступить на платное отделение в ВУЗ.
Если экзаменуемый набрал более 21 первичного балла, есть хорошие шансы поступить на бюджет.
Таблица перевода первичных баллов ЕГЭ в оценку
| Тестовый балл | Оценка |
|---|---|
| 0-39 | 2 |
| 40-56 | 3 |
| 57-72 | 4 |
| 73-100 | 5 |
Официально перевод тестовых баллов ЕГЭ в оценку отсутствует. В таблице указаны ориентировочные данные.
За каждый правильный ответ с 1 по 24 задание, экзаменуемый получает 1 первичный балл. Правильно выполненные 25-27 задания, оцениваются в 2 первичных балла.
- Взрослым: Skillbox, Хекслет, Eduson, XYZ, GB, Яндекс, Otus, SkillFactory.
- 8-11 класс: Умскул, Лектариум, Годограф, Знанио.
- До 7 класса: Алгоритмика, Кодланд, Реботика.
- Английский: Инглекс, Puzzle, Novakid.
Перевод баллов ЕГЭ по информатике 2022-2023. Первичные и вторичные баллы
Каждое задание в ЕГЭ по информатике оценивается первичными баллами. Сумма первичных баллов по всем заданиям — это общий первичный балл; он переводится во вторичный (тестовый) с помощью таблицы.
Таблица перевода первичных баллов во вторичные
Шкала переводов является ориентировочной.
- Красный цвет — вы не перешли порог; поступить в ВУЗ нельзя.
- Белый цвет — можно поступить на платное.
- Зелёный цвет — хорошие шансы поступить на бюджет.
| Первичный | Тестовый |
|---|---|
| 1 | 7 |
| 2 | 14 |
| 3 | 20 |
| 4 | 27 |
| 5 | 34 |
| 6 | 40 |
| 7 | 43 |
| 8 | 46 |
| 9 | 48 |
| 10 | 51 |
| 11 | 54 |
| 12 | 56 |
| 13 | 59 |
| 14 | 62 |
| 15 | 64 |
| 16 | 67 |
| 17 | 70 |
| 18 | 72 |
| 19 | 75 |
| 20 | 78 |
| 21 | 80 |
| 22 | 83 |
| 23 | 85 |
| 24 | 88 |
| 25 | 90 |
| 26 | 93 |
| 27 | 95 |
| 28 | 98 |
| 29 | 100 |
Таблица перевода тестовых баллов в оценку
Минимальный проходной тестовый балл для поступления в ВУЗ — 40.
Перевод тестовых баллов ЕГЭ в оценки официально не действует. В таблице указаны примерные данные.
| Тестовый балл | Оценка |
|---|---|
| 0-39 | 2 |
| 40-56 | 3 |
| 57-79 | 4 |
| 80-100 | 5 |
Первичные баллы за задания по порядку
| № задания | Первичный балл |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | 1 |
| 6 | 1 |
| 7 | 1 |
| 8 | 1 |
| 9 | 1 |
| 10 | 1 |
| 11 | 1 |
| 12 | 1 |
| 13 | 1 |
| 14 | 1 |
| 15 | 1 |
| 16 | 1 |
| 17 | 1 |
| 18 | 1 |
| 19 | 1 |
| 20 | 1 |
| 21 | 1 |
| 22 | 1 |
| 23 | 1 |
| 24 | 1 |
| 25 | 1 |
| 26 | 2 |
| 27 | 2 |
| Всего | 29 |
- Взрослым: Skillbox, Хекслет, Eduson, XYZ, GB, Яндекс, Otus, SkillFactory.
- 8-11 класс: Умскул, Лектариум, Годограф, Знанио.
- До 7 класса: Алгоритмика, Кодланд, Реботика.
- Английский: Инглекс, Puzzle, Novakid.
Правильно выполненные 25-27 задания, оцениваются в 2 первичных балла.
Сколько баллов дают за задание егэ информатика?
Изначально все задания оцениваются в первичных баллах, за каждый из вопросов можно получить от 1 до 2 баллов в зависимости от уровня сложности. Максимально работа оценивается в 30 первичных баллов. После экзамена набранные первичные баллы переводятся в тестовые по 100-балльной шкале.
Какой средний балл егэ по информатике 2021?
В 2021 году средний балл улучшился по профильной математике (55,1), литературе (66), информатике и ИТК (62,8), физике (55,1), обществознанию (56,4), английскому языку (72,2).
Сколько баллов егэ за каждое задание?
Правильное выполнение заданий с 4 по 9, 11, с 13 по 15, с 17 по 20 оценивается: 2 первичных балла – полное выполнение, 1 балл – выполнено 50%. За полное правильное выполнение заданий 21, 22 выставляется по 2 балла. За задания 23, 24, 26, 27 — по 3 балла. За 25 и 28 — по 4 балла, за 29 – 6 первичных баллов.
Сколько баллов дают за каждое задание егэ по информатике 2021?
Первичные баллы за задания ЕГЭ по информатике в 2021 году
За каждый правильный ответ с 1 по 24 задание, экзаменуемый получает 1 первичный балл. Правильно выполненные 25-27 задания, оцениваются в 2 первичных балла.
Сколько нужно решить заданий чтобы пройти порог по информатике?
При этом школьникам по-прежнему придется выполнить 27 заданий на экзамене. Предварительно градация пороговых баллов по информатике на 2021 год выглядит так: Менее 5 первичных баллов — 34 (или 37) тестовых балла — экзамен не сдан, поступить в вуз нельзя.
Как оценивается информатика ЕГЭ?
ЕГЭ по информатике выпускники сдают по желанию. Его результаты оцениваются сначала в первичных баллах, которые потом переводят в тестовые по стобалльной шкале. … Максимальный первичный балл, который можно получить на ЕГЭ по информатике и ИКТ, – 30 баллов, — сообщили РИА Новости в ФИПИ.
Сколько баллов за тестовую часть по русскому ЕГЭ?
Первая часть экзамена состоит из 26 тестовых заданий. Большинство из них оценивается в 1 балл. Исключением являются задания 8 (максимальный балл: 5), 16 (максимальный балл: 2), 26 (максимальный балл: 4). Максимальное количество баллов за задания первой части — 34.
Что можно использовать на ЕГЭ по информатике 2021?
В отличие от бланковой модели экзамена, в 2021 года выполнение заданий по программированию допускается на языках программирования (семействах языков) С++, Java, C#, Pascal, Python, Школьный алгоритмический язык. Из примеров фрагментов кода в заданиях в связи с невостребованностью исключены примеры на Бейсике.
Сколько стобалльников по информатике 2021?
«Средний тестовый балл по этому предмету составил 54,9, что незначительно ниже прошлогоднего результата. Количество высокобалльников по истории в 2021 году — более 11 тыс. человек, стобалльников — 366″, — сообщил Круглинский. Он напомнил, что 24-25 июня выпускники сдают заключительный ЕГЭ по информатике.
Сколько стобалльников по английскому 2021?
Максимально ЕГЭ по английскому языку в 2021 году принесет 100 первичных баллов, равные 100 тестовым. Быть лучшим из лучших, выполнив работу безукоризненно, непросто. Однако число стобалльников по английскому языку растет: еще в 2018 году их было всего 15, а в 2019 уже 89. Высокобалльная работа начинается от 81 балла.
Сколько Стобалльников егэ 2021?
Количество высокобалльников по истории в 2021 году – более 11 тысяч человек, стобалльников – 366. Минимальную границу в 32 тестовых балла не преодолели 7,4% участников, что на 0,2% меньше, чем годом ранее.
Какой порог по русскому ЕГЭ 2021?
Обычно для получения аттестата выпускники сдают два обязательных экзамена: русский и математику. Но в 2021 году из-за эпидситуации в стране ЕГЭ по базовой математике отменили. Поэтому, чтобы окончить школу и получить аттестат, достаточно сдать только русский язык минимум на 10 первичных баллов, то есть 24 тестовых.
Как считать баллы по ЕГЭ по русскому языку?
Распределение баллов за каждое задание по русскому языку
5 баллов – за 8-е. Максимум 25 баллов можно получить за сочинение (задание 27). Всего — 59 баллов. Во вторичные, то есть тестовые баллы переводится общая сумма баллов, полученных за экзамен.
Как начисляются баллы за ЕГЭ по русскому языку?
Всего ЕГЭ по русскому оценивается в 59 первичных баллов. После экзамена набранные первичные баллы переводятся в тестовые по 100-балльной шкале. На тройку нужно набрать 24 тестовых балла, для подачи документов в вуз — от 36 баллов.
27-е задание: «Анализ числовых последовательностей»
Уровень сложности
— высокий,
Требуется использование специализированного программного обеспечения
— да,
Максимальный балл
— 2,
Примерное время выполнения
— 35 минут.
Проверяемые элементы содержания: Умение создавать собственные программы (20–40 строк) для анализа числовых последовательностей
Плейлист видеоразборов задания на YouTube:
Задание демонстрационного варианта 2022 года ФИПИ
Содержание:
- На вход программы поступает последовательность чисел, произвести анализ пар
- Выбрать из каждой пары одно число
- Набор данных, состоящих из троек чисел
- Анализ пар, находящихся на расстоянии
На вход программы поступает последовательность чисел, произвести анализ пар
27_4:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
Компьютер наземной станции слежения получает от объектов-самолётов, находящихся в зоне её работы, идентификационные сигналы, представляющие собой последовательность из N целых положительных чисел. Каждый объект направляет на наземную станцию уникальное число, т. е. все числа в получаемой станцией последовательности различны. Обработка сигнала представляет собой рассмотрение всех пар различных элементов последовательности, при этом элементы пары не обязаны быть переданы непосредственно друг за другом, порядок элементов в паре не важен. Считается, что возникла одна критическая ситуация, если произведение элементов некоторой пары кратно 58.
Необходимо определить общее количество возникших критических ситуаций.
Описание входных и выходных данных
В первой строке входных данных задаётся количество чисел N (1 < N < 1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000.
В качестве результата программа должна напечатать одно число: общее количество возникших критических ситуаций.
Пример входных данных:
4 2 6 29 87
Пример выходных данных для приведённого выше примера входных данных:
4
Из четырёх заданных чисел можно составить б попарных произведений:
2*6 = 12 2*29 = 58 2*87 = 174 6*29 = 174 6*87 = 522 29*87 = 2523
Из них на 58 делятся 4 произведения (выделены синим).
Требуется написать эффективную по времени и по памяти программу для решения описанной задачи.
Показать решение:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
✎ Программа эффективна по времени и по памяти (4 балла):
- Язык Паскаль (версия PascalABC):
- Язык Python (версия Python 3):
- Произведение двух чисел делится на 58, если выполнено одно из следующих условий (условия не могут выполняться одновременно).
- A. Оба сомножителя делятся на 58.
- Б. Один из сомножителей делится на 58, а другой не делится.
- B. Ни один из сомножителей не делится на 58, но один сомножитель делится на 2, а другой — на 29.
- Почему именно 2 и 29?
- Берем два делителя числа 58, произведение которых дает число 58: 2*29 = 58. При этом одно из них — наименьший делитель (в нашем случае 2), а другой, не должен делиться на первый найденный делитель (29/2 <> 0).
- Условие делимости произведения на 58 можно сформулировать проще, например так:
- Но в этом случае пара сомножителей может удовлетворять обоим условиям, что затруднит подсчёт количества пар.
- При вводе чисел можно определять, делится ли каждое из них на 58, 2 и 29, и подсчитывать следующие значения:
- n58 — количество чисел, кратных 58;
- n29 —количество чисел, кратных 29, но не кратных 2 и 58;
- n2 — количество чисел, кратных 2, но не кратных 29 и 58.
- Сами числа при этом можно не хранить. Каждое число учитывается не более чем в одном из счётчиков.
- Количество пар, удовлетворяющих условию А, можно вычислить по формуле
n58*(n58 - 1)/2. - Количество пар, удовлетворяющих условию Б, можно вычислить по формуле
n58*(N - n58). - Количество пар, удовлетворяющих условию В, можно вычислить по формуле
n2 * n29. - Поэтому искомое количество пар вычисляется по формуле:
var N: integer; {количество чисел} a: integer; {очередное число} n58, n29, n2: integer; k58: integer; {количество требуемых пар} i: integer; begin readln(N); n58 := 0; n29 := 0; n2 := 0; for i := 1 to N do begin readln(a); if a mod 58 = 0 then n58 := n58 + 1 else if a mod 29 = 0 then n29 := n29 + 1 else if a mod 2 = 0 then n2 := n2 + 1; end; k58 := n58 * (n58 - 1) div 2 + n58 * (N - n58) + n2 * n29; writeln(k58) end.
n=int(input()) n58,n29,n2=0,0,0 for i in range(n): a=int(input()) if a % 28 == 0: n58+=1 elif a % 29 == 0: n29+=1 elif a % 2 == 0: n2+=1 k58=n58 * (n58-1) // 2 + n58 * (n-n58) + n2 * n29 print(k58)
(один из сомножителей делится на 58)
ИЛИ
(один сомножитель делится на 2, а другой — на 29)
n58 * (n58 - 1)/2 + n58 * (N - n58) + n2 * n29
✎ Программа неэффективная (2 балла):
- Язык Паскаль (версия PascalABC):
var i, j, k, n: integer; a: array[1..1000]of integer;//очередное значение begin readln(n); for i := 1 to n do begin readln(a[i]); end; k := 0; for i := 1 to n - 1 do for j := i + 1 to n do if a[i] * a[j] mod 58 = 0 then k := k + 1; writeln(k); end.
Полный перебор: все числа сохраняются в массиве, рассматриваются все возможные пары и подсчитывается количество подходящих произведений.
27_6: Разбор 27 задания демоверсии 2018 года (ФИПИ):
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности (элементы пары не обязаны стоять в последовательности рядом, порядок элементов в паре не важен). Необходимо определить количество пар, для которых произведение элементов делится на 26.
Описание входных и выходных данных В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000.
В качестве результата программа должна напечатать одно число: количество пар, в которых произведение элементов кратно 26.
Пример входных данных:
4 2 6 13 39
Пример выходных данных для приведённого выше примера входных данных:
4
Из четырёх заданных чисел можно составить 6 попарных произведений:
2·6 = 12 2·13 = 26 2·39 = 78 6·13 = 78 6·39 = 234 13·39 = 507
Из них на 26 делятся 4 произведения:
2·13=26; 2·39=78; 6·13=78; 6·39=234
Требуется написать эффективную по времени и по памяти программу для
решения описанной задачи.
Показать решение:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
-
Произведение двух чисел делится на 26, если выполнено одно из следующих условий (условия не могут выполняться одновременно).
А. Оба сомножителя делятся на 26.
Б. Один из сомножителей делится на 26, а другой не делится.
В. Ни один из сомножителей не делится на 26, но один сомножитель делится на 2, а другой – на 13.
Примечание для проверяющего. Условие делимости произведения на 26 можно сформулировать проще, например, так:
(один из сомножителей делится на 26) ИЛИ
(один сомножитель делится на 2, а другой – на 13).
Но в этом случае пара сомножителей может удовлетворять обоим условиям, что затруднит подсчёт количества пар.
При вводе чисел можно определять, делится ли каждое из них на 26, 2 и 13, и подсчитывать следующие значения:
1) n26 – количество чисел, кратных 26;
2) n13 – количество чисел, кратных 13, но не кратных 26;
3) n2 – количество чисел, кратных 2, но не кратных 26.
Примечание для проверяющего. Сами числа при этом можно не хранить.
Каждое число учитывается не более чем в одном из счётчиков.
Количество пар, удовлетворяющих условию А, можно вычислить по формуле n26·(n26 – 1)/2.
Количество пар, удовлетворяющих условию Б, можно вычислить по формуле n26·(N – n26).
Количество пар, удовлетворяющих условию В, можно вычислить по формуле n2·n13.
Поэтому искомое количество пар вычисляется по формуле
n26·(n26 – 1)/2 + n26·(N – n26) + n2·n13
✎ Программа эффективна и по времени, и по памяти (4 балла):
Программа на языке Паскаль (версия PascalABC):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
var N: integer; {количество чисел} a: integer; {очередное число} n26, n13, n2: integer; k26: integer; {количество требуемых пар} i: integer; begin readln(N); n26 := 0;n13 := 0;n2 := 0; for i := 1 to N do begin readln(a); if a mod 26 = 0 then n26 := n26 + 1 else if a mod 13 = 0 then n13 := n13 + 1 else if a mod 2 = 0 then n2 := n2 + 1; end; k26 := n26 * (n26 - 1) div 2 + n26 * (N - n26) + n2 * n13; writeln(k26) end. |
Программа на языке Python (версия Python 3):
1 2 3 4 5 6 7 8 9 10 11 12 |
n=int(input()) n26,n13,n2=0,0,0 for i in range(n): a=int(input()) if a % 26 == 0: n56+=1 elif a % 13 == 0: n13+=1 elif a % 2 == 0: n2+=1 k26=n26 * (n26-1) // 2 + n26 * (n-n26) + n2 * n13 print(k26) |
Программа на языке Бейсик:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
N26 = 0 N2 = 0 N13 = 0 NX = 0 INPUT N FOR I = 1 TO N INPUT A IF A MOD 26 = 0 THEN N26 = N26 + 1 ELSE IF A MOD 13 = 0 THEN N13 = N13 + 1 ELSE IF A MOD 2 = 0 THEN N2 = N2 + 1 ELSE NX = NX + 1 END IF END IF END IF NEXT I K26 = N26*(N26 - 1)2 + N26*(N2 + N13 + NX) + N2*N13 PRINT K26 |
27_7: задание досрочного экзамена 2020 г, ФИПИ (2 вариант):
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
Дана последовательность N целых положительных чисел. Рассматриваются все пары элементов последовательности, разность которых чётна, и в этих парах, по крайней мере, одно из чисел пары делится на 19. Порядок элементов в паре неважен. Среди всех таких пар нужно найти и вывести пару с максимальной суммой элементов. Если одинаковую максимальную сумму имеет несколько пар, можно вывести
любую из них
. Если подходящих пар в последовательности нет,
нужно вывести два нуля
.
Описание входных и выходных данных
В первой строке входных данных задаётся количество чисел N (2 ≤ N ≤ 10 000). В каждой из последующих N строк записано одно натуральное число, не превышающее 10 000.
Пример входных данных:
5 38 12 57 16 57
Пример выходных данных для приведённого выше примера входных данных:
57 57
Пояснение. Из данных пяти чисел можно составить три различные пары, удовлетворяющие условию: (38, 12), (38, 16), (57, 57). Наибольшая сумма получается в паре (57, 57). Эта пара допустима, так как число 57 встречается в исходной последовательности дважды.
Напишите эффективную по времени и памяти программу для решения этой задачи.
Программа считается эффективной по времени, если при увеличении количества исходных чисел N в k раз время работы программы увеличивается не более чем в k раз.
Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 Кбайт и не увеличивается с ростом N.
Максимальная оценка за правильную (не содержащую синтаксических ошибок и дающую правильный ответ при любых допустимых входных данных) программу, эффективную по времени и памяти, – 4 балла.
Максимальная оценка за правильную программу, эффективную только по времени или только по памяти, – 3 балла.
Максимальная оценка за правильную программу, не удовлетворяющую требованиям эффективности, – 2 балла.
Вы можете сдать одну или две программы решения задачи. Если Вы сдадите две программы, каждая из них будет оцениваться независимо от другой, итоговой станет бо́льшая из двух оценок.
Перед текстом программы кратко опишите алгоритм решения. Укажите использованный язык программирования и его версию.
Типовые задания для тренировки
Показать решение:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
- ✎ Программа эффективна по времени и памяти
- ✎ Правильная программа на языке C++, эффективная только по времени
- ✎ Правильная, но неэффективная программа на языке Паскаль
Язык Pascal (PascalABC):
Вариант 1:
const p = 19; var N: integer; {количество чисел} a: integer; {очередное число} m0, m1: integer; {чётный и нечётный максимумы} mp0, mp1: integer; {чётный и нечётный максимумы, кратные p} x, y: integer; {ответ – пара чисел} i: integer; begin m0 := 0; m1 := 0; mp0 := 0; mp1 := 0; x := 0; y := 0; readln(N); for i := 1 to N do begin readln(a); // для четных if a mod 2 = 0 then begin // если кратное if (a mod p = 0) and (a >= mp0) then begin if mp0 > m0 then m0:= mp0; mp0:=a end else if a > m0 then m0 := a; end else begin // для нечетных if (a mod p = 0)and(a>=mp1) then begin if mp1>m1 then m1:=mp1; mp1 := a; end else if a>m1 then m1:=a; end; end; // writeln('mp0=', mp0, 'm0=', m0); if (mp0 > 0) and (m0 > 0) then begin x := mp0; y := m0; end; // writeln('mp1=', mp1, 'm1=', m1); if (mp1 > 0) and (m1 > 0) and (mp1 + m1 > x + y) then begin x := mp1; y := m1; end; writeln('=', x, ' ', y) end.
Язык Pascal (PascalABC):
Вариант 2:
const p = 19; var n, i, x, k19n, k19chet, n19chet, n19n, m1, m2: integer; begin readln(n); {количество чисел} readln(x); {первое число} // обнуление всех переменных k19chet := 0; // четный кратный n19chet := 0; // четный некратный k19n := 0; // нечетный кратный n19n := 0; // нечетный некратный m1 := 0; m2 := 0; // максимальные // цикл до n - 1, т.к. первое число уже считали for i := 1 to n - 1 do begin // проверка, если четный и кратный if (x mod p = 0) and (x mod 2 = 0) and (x > k19chet) then begin k19chet := x; end; // проверка, если четный и некратный if (x mod p <> 0) and (x mod 2 = 0) and (x > n19chet) then begin n19chet := x; end; // проверка, если нечетный и кратный if (x mod p = 0) and (x mod 2 = 1) and (x > k19n) then begin k19n := x; end; // проверка, если нечетный и некратный if (x mod p <> 0) and (x mod 2 = 1) and (x > n19n) then begin n19n := x; end; readln(x); // считываем очередное число // если x кратно и есть такое некратное n19chet, сумма с которым была бы больше чем m1 + m2 if (x mod p = 0) and ((x + n19chet) mod 2 = 0) and (x + n19chet > m1 + m2) and (n19chet > 0) then begin m1 := x; m2 := n19chet; end; // если x кратно и есть такое некратное n19n, сумма с которым была бы больше чем m1 + m2 if (x mod p = 0) and ((x + n19n) mod 2 = 0) and (x + n19n > m1 + m2) and (n19n > 0) then begin m1 := x; m2 := n19n; end; // если есть такое кратное k19n, сумма с которым была бы четной и больше чем m1 + m2 if ((x + k19n) mod 2 = 0) and (x + k19n > m1 + m2) and (k19n > 0) then begin m1 := x; m2 := k19n; end; // если есть такое кратное k19chet, сумма с которым была бы четной и больше чем m1 + m2 if ((x + k19chet) mod 2 = 0) and (x + k19chet > m1 + m2) and (k19chet > 0) then begin m1 := x; m2 := k19chet; end; end; writeln(m1, ' ', m2) end.
:
p = 19 m0 = m1 = mp0 = mp1 = 0 N = int(input()) for i in range(N): a = int(input()) if a % 2 == 0: if a % p == 0 and a >= mp0: if mp0 > m0: m0 = mp0 mp0 = a elif a > m0: m0 = a else: if a % p == 0 and a >= mp1: if mp1 > m1: m1 = mp1 mp1 = a elif a > m1: m1 = a x = y = 0 if mp0 > 0 and m0 > 0: x = mp0; y = m0 if mp1 > 0 and m1 > 0 and mp1 + m1 > x + y: x = mp1; y = m1 print(x,y)
Ещё один путь решения – записать всю последовательность в массив и анализировать её в несколько проходов. Ниже приводится реализующая такой алгоритм программа на языке C++. В этой программе массив с исходными данными обрабатывается два раза: на первом проходе находятся индексы максимального чётного и нечётного элементов, кратных p, на втором проходе – общие чётный и нечётный максимумы. При этом элементы, выделенные как кратные при первом проходе, во время второго прохода из сравнения исключаются. Такая программа эффективна по времени (несмотря на повторную обработку массива, общее время работы пропорционально N), но неэффективна по памяти. Максимальная оценка за такую программу при отсутствии в ней синтаксических и содержательных ошибок – 3 балла.
С++:
#include <iostream> using namespace std; int main() { const int p = 19; // делитель int N; cin >> N; // количество элементов int a[N]; // элементы последовательности for (int i = 0; i < N; ++i) cin >> a[i]; int imp0 = -1, imp1 = -1; //индексы максимумов, кратных p for (int i = 0; i < N; ++i) { if (a[i] % p == 0) { if (a[i] % 2 == 0) { if (imp0 == -1 || a[i] > a[imp0]) imp0 = i; } else { if (imp1 == -1 || a[i] > a[imp1]) imp1 = i; } } } int im0 = -1, im1 = -1; // индексы общих максимумов for (int i = 0; i < N; ++i) { if (i != imp0 && i != imp1) { if (a[i] % 2 == 0) { if (im0 == -1 || a[i] > a[im0]) im0 = i; } else { if (im1 == -1 || a[i] > a[im1]) im1 = i; } } } int x = 0, y = 0; // пара чисел для ответа if (imp0 != -1 && im0 != -1) { x = a[imp0]; y = a[im0]; } if (imp1 != -1 && im1 != -1 && a[imp1] + a[im1] > x + y) { x = a[imp1]; y = a[im1]; } cout << x << ' ' << y << endl; return 0; }
Запишем все исходные числа в массив, переберём все возможные пары и выберем подходящую. Такое решение не является эффективным ни по памяти (требуемая память зависит от размера исходных данных), ни по времени (количество возможных пар, а значит, количество действий и время счёта с ростом количества исходных элементов растут квадратично). Подобная программа оценивается не выше 2 баллов.
Язык Pascal (версия PascalABC):
const p = 19; var N: integer; {количество чисел} a: array [1..10000] of integer; {исходные данные} x, y: integer; {ответ – пара чисел} i, j: integer; begin readln(N); for i := 1 to N do readln(a[i]); x := 0; y := 0; for i := 1 to N - 1 do begin for j := i + 1 to N do begin if ((a[i] - a[j]) mod 2 = 0) and ((a[i] mod p = 0) or (a[j] mod p = 0)) and (a[i] + a[j] > x + y) then begin x := a[i]; y := a[j] end end end; writeln(x, ' ', y) end.
Выбрать из каждой пары одно число
27_1:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
Задание А (более легкое, чем Б)
Имеется набор данных, состоящий из 5 пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма квадратов всех выбранных чисел была нечетной и при этом максимально возможной. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.
Напишите программу для решения этой задачи. В этом варианте задания оценивается только правильность программы, время работы и размер использованной памяти не имеет значения.
Максимальная оценка за правильную программу — 2 балла.
Задание Б (более сложное, чем А)
Имеется набор данных, состоящих из пар положительных целых чисел. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма квадратов всех выбранных чисел была нечетной и при этом максимально возможной. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.
Напишите программу для решения этой задачи.
Постарайтесь сделать программу эффективной по времени, если время работы программы пропорционально количеству пар чисел N, т.е. при увеличении N в k раз время работы программы должно увеличиваться на более чем в k раз.
Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.
Максимальная оценка за правильную программу, эффективную по времени и по памяти, — 4 балла.
Как в варианте А, так и в варианте Б программа должна напечатать одно число — максимально возможную сумму, соответствующую условиям задачи (или 0, если такую сумму получить нельзя).
Например: 2 6 4 1 7 3 2 9 7 4 sum=231
✍ Показать решение:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
✎ Задание Б (алгоритм), более сложное, 4 балла:
- поскольку в задании указано, что «имеется набор данных, состоящих из пар…», то введем в программу переменную
nдля количества пар, значение которой будет считываться со стандартного входного потока: - объявим сами числа типа
integer, переменную цикла —i— типаintegerи дополнительные переменные, смысл которых будет объяснен ниже. Объявление сделаем в отдельных строках (так делать не обязательно), чтобы можно было ввести удобно комментарии: - так как в задании не оговаривается, что пары чисел считывается из файла, значит их необходимо считать со стандартного входного потока оператором
readln(); т.е. организуем цикл:
n:longint; {количество пар чисел};
x,y: integer; {пара чисел} max: integer; {максимальное из пары} min: integer; {минимальное из пары} sum:longint; {сумма квадратов отобранных чисел} min_kvadr:longint; {мин. нечетная разница квадратов max и min} i:integer;
for i:=1 to n do begin readln(x,y); ...
Допустим имеем пары:
2 6 4 1 7 3 2 9 7 4
2 6 4 1 7 3 2 9 7 4
if x>y then begin max:=x; min:=y end else begin max:=y;min:=x end;
2 6 - разница 32 (36 - 4)
4 1 - разница 15 (16 - 1)
7 3 - разница 40 (49 - 9)
2 9 - разница 77 (81 - 4)
7 4 - разница 33 (49 - 16)
if((max-min) mod 2 > 0) and ((sqr(max)-sqr(min)) < min_kvadr) then min_kvadr:=sqr(max) - sqr(min)
min_kvadr:=1073676289; {32 767 * 32 767 (самое большое в типе integer) }
if sum mod 2 = 0 then begin if min_kvadr = 1073676289 then sum := 0 else sum:=sum - min_kvadr end;
Эффективная программа на языке Паскаль (версия Pascal ABC):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
var n:longint; {количество пар чисел} x,y: integer; {пара чисел} max: integer; {максимальное из пары} min: integer; {минимальное из пары} sum:longint; {сумма квадратов отобранных чисел} min_kvadr:longint; {мин. нечетная разница квадратов max и min} i:integer; begin sum:=0; readln(n); min_kvadr:=1073676289; {32 767 * 32 767, самое большое integer} for i:=1 to n do begin readln(x,y); if x>y then begin max:=x; min:=y end else begin max:=y;min:=x end; sum:=sum+sqr(max); if((max-min) mod 2 > 0) and (sqr(max)-sqr(min) < min_kvadr) then min_kvadr:=sqr(max) - sqr(min) end; if sum mod 2 = 0 then begin if min_kvadr = 1073676289 then sum := 0 else sum:=sum - min_kvadr end; writeln('sum=',sum) end. |
Пример работы программы:
3 1 4 2 4 3 4 sum=41
✎ Задание А (более легкое, 2 балла максимум):
- так как в задании указано, что пар чисел ровно 5, то введем в программу константу n=5
Решение на языке Паскаль (версия PascalABC):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
const n = 5; {количество пар чисел} var x,y: longint; {пара чисел} max_sum: longint; {максимальная из сумм} sum:array [1..15]of longint; {суммы квадратов всех комбинаций чисел} i,k:longint; begin readln(x,y); sum[1]:=sqr(x); sum[2]:=sqr(y); k:=3; {счетчик для сумм} for i:=2 to n do begin readln(x,y); sum[k]:=sum[k-2]+sqr(x); {1 шаг: s3=s1+x*x}{2 шаг: s7=s4+x*x} sum[k+1]:=sum[k-2]+sqr(y); {1 шаг: s4=s1+y*y}{2 шаг: s8=s4+y*y} sum[k+2]:=sum[k-1]+sqr(x); {1 шаг: s5=s2+x*x}{2 шаг: s9=s6+x*x} sum[k+3]:=sum[k-1]+sqr(y); {1 шаг: s6=s2+y*y}{2 шаг: s10=s6+y*y} k:=k+4; end; max_sum:=sum[1]; for i:=1 to n*n do if (sum[i]>max_sum) and (sum[i] mod 2 <>0) then max_sum:=sum[i]; if (max_sum=sum[1]) and (max_sum mod 2 = 0) then max_sum:=0; writeln(max_sum) end. |
📹 Видео
📹 Видеорешение на RuTube здесь
Набор данных, состоящих из троек чисел
27_2:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
Вам предлагается два задания с похожими условиями: задание А и задание Б. Вы можете решать оба задания или одно из них по своему выбору. Задание Б более сложное, его решение оценивается выше. Итоговая оценка выставляется как максимальная из оценок за задания А и Б.
А. Имеется набор данных, состоящий из 5 троек положительных целых чисел. Необходимо выбрать из каждой тройки ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 5 и при этом была минимально возможной. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.
Напишите программу для решения этой задачи. В этом варианте задания оценивается только правильность программы, время работы и размер использованной памяти не имеют значения.
Максимальная оценка за правильную программу — 2 балла.
Б. Имеется набор данных, состоящий из троек положительных целых чисел. Необходимо выбрать из каждой тройки ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 5 и при этом была минимально возможной. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.
Постарайтесь сделать программу эффективной по времени и по используемой памяти.
Программа считается эффективной по времени, если время работы программы пропорционально количеству чисел N, т.е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз.
Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа N и не превышает 1 килобайта.
Максимальная оценка за правильную программу, эффективную по времени и по памяти, — 4 балла.
Как в варианте А, так и в варианте Б программа должна напечатать одно число — минимально возможную сумму, соответствующую условиям задачи (или 0, если такую сумму получить нельзя).
Напоминаем! не забудьте указать, к какому заданию относится каждая из представленных Вами программ.
Перед текстом программы кратко опишите Ваш алгоритм решения, укажите использованный язык программирования и его версию.
Входные данные
Для варианта А на вход программе подается 5 строк, каждая из которых содержит три натуральных числа, не превышающих 10000.
Пример входных данных для варианта А:
1 3 2 2 1 2 2 5 1 1 3 4 6 1 1
Для варианта Б на вход программе в первой строке подается количество троек чисел N (1<=N<=100000). Каждая из следующих N строк содержит три натуральных числа, не превышающих 10000.
Пример входных данных для варианта Б:
5 1 3 2 2 1 2 2 5 1 1 3 4 6 1 1
Пример выходных данных для приведенных выше примеров входных данных:
6
Типовые задания для тренировки
✍ Показать решение:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
✎ Задание Б (4 балла)
Чтобы получить минимально возможную сумму, будем брать из каждой тройки наименьшее число. Если полученная при этом сумма будет кратна 5, ее придется увеличить. Для этого достаточно в одной из троек, где хотя бы два числа имеют разные остатки при делении на 5, заменить ранее выбранное число на число с другим остатком от деления на 5 из той же тройки. При этом модуль разности между прежним и новым, выбранным из тройки, должен быть минимально возможным.
Пример правильной и эффективной программы для задания Б на языке Паскаль (версия PascalABC):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
const aMax = 10000;{наибольшее возможное исходное число} var N: longint; {количество троек} a, b, c, tmp: longint;{тройка чисел} s: longint;{сумма выбранных чисел} D_min: longint;{мин. разница в тройке не кратная 5} i: longint;{} begin s := 0; D_min := aMax + 1; readln(N); for i := 1 to N do begin readln(a, b, c); if (a > b) then begin tmp := a;a := b;b := tmp end; if(b > c) then begin tmp := b;b := c;c := tmp; if (a > b) then begin tmp := a;a := b;b := tmp end end; {a,b,c отсортированы по возрастанию} s := s + a; if((b - a) mod 5 > 0 ) and ((b - a) < D_min) then D_min := b - a; if((c - a) mod 5 > 0 ) and ((c - a) < D_min) then D_min := c - a end; if s mod 5 = 0 then begin if D_min > aMax then s := 0 else s := s + D_min end; writeln(s) end. |
✎ Задание А (2 балла)
В цикле перебираются все возможные суммы, и среди них ищется удовлетворяющая условию.
На языке Паскаль (версия PascalABC):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
var a: array[1..5, 1..3] of longint; i1, i2, i3, i4, i5: longint; s, sMin: longint; begin for i1 := 1 to 5 do readln(a[i1, 1], a[i1, 2], a[i1, 3]); sMin := 100000; for i1 := 1 to 3 do for i2 := 1 to 3 do for i3 := 1 to 3 do for i4 := 1 to 3 do for i5 := 1 to 3 do begin s := a[1, i1] + a[2, i2] + a[3, i3] + a[4, i4] + a[5, i5]; if (s mod 5 = 0) and (s < sMin) then sMin := s end; if (sMin = 100000) then sMin := 0; writeln(sMin) end. |
Анализ пар, находящихся на расстоянии
27_3: Разбор 27 задания демоверсии 2019 года (ФИПИ):
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не меньше чем 4 (разница в индексах элементов пары должна быть 4 или более, порядок элементов в паре неважен).
Необходимо определить количество таких пар, для которых произведение элементов делится на 29.
Описание входных и выходных данных:
В первой строке входных данных задаётся количество чисел N (4 ≤ N ≤ 1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10 000.
В качестве результата программа должна вывести одно число: количество пар элементов, находящихся в последовательности на расстоянии не меньше чем 4, в которых произведение элементов кратно 29.
Пример входных данных:
7 58 2 3 5 4 1 29
Пример выходных данных для приведённого выше примера входных данных:
5
Из 7 заданных элементов с учётом допустимых расстояний между ними можно составить 6 произведений:
58·4 = 232 :29=8 58·1 = 58 :29=2 58·29 = 1682 :29=58 2·1 = 2 2·29 = 58 :29=2 3·29 = 87 :29=3
Из них на 29 делятся 5 произведений.
Требуется написать эффективную по времени и памяти программу для решения описанной задачи.
Показать решение:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
✎ Программа на языке Паскаль (версия PascalABC). Программа неэффективна ни по времени, ни по памяти (2 балла):
- Перебор всех вариантов произведений:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
const s = 4;//требуемое расстояние var n, i, j, cnt: integer; a: array[1..1000] of integer; begin readln(n); cnt := 0; for i := 1 to n do readln(a[i]); for i := 1 to n - s do for j := i + s to n do if a[i] * a[j] mod 29 = 0 then cnt := cnt + 1; writeln(cnt) end. |
✎ Программа на языке Паскаль (версия PascalABC). Программа эффективна и по времени, и по памяти (4 балла):
- Если один из сомножителей делится без остатка на 29, то произведение с любым другим сомножителем тоже будет делится на 29.
- Последние рассматриваемые 4 элемента можно хранить как 4 счётчика: количество делящихся на 29 среди всех считанных чисел, всех считанных чисел без последнего, всех считанных чисел без 2 последних, всех считанных чисел без 3 последних, – и также сдвигать их после очередного шага.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
const s = 4;//требуемое расстояние var n,i: integer; n1, n2, n3, n4: integer; //хранение последних s счетчиков a_: integer; //очередное значение cnt: integer;//количество искомых пар begin readln(n); n1 := 0;n2 := 0;n3 := 0;n4 := 0; cnt := 0; for i := 1 to n do begin readln(a_); // очередное значение if i > s then if a_ mod 29 = 0 then cnt := cnt + (i - s) else cnt := cnt + n4; // сдвигаем элементы счетчика n4 := n3; n3 := n2; n2 := n1; // обновляем счетчик кратных 29 if a_ mod 29 = 0 then n1 := n1 + 1; end; writeln(cnt) end. |
📹 Видео
Видео на RuTube здесь
27_5:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
Датчик передаёт каждую секунду по каналу связи неотрицательное целое число, не превосходящее 1000, — текущий результат измерений. Временем, в течение которого происходит передача, можно пренебречь.
Необходимо найти в заданной серии показаний датчика минимальное чётное произведение двух показаний, между моментами передачи которых прошло не менее 8 секунд. Если получить такое произведение не удаётся, ответ считается равным -1. Общее количество показаний датчика в серии не превышает 10 000.
Вам предлагаются два задания, связанных с этой задачей: задание А и задание Б. Вы можете решать оба задания или одно из них по своему выбору.
Итоговая оценка выставляется как максимальная из оценок за задания А и Б. Если решение одного из заданий не представлено, то считается, что оценка за это задание — 0 баллов.
Задание Б является усложнённым вариантом задания А, оно содержит дополнительные требования к программе.
А. Напишите на любом языке программирования программу для решения поставленной задачи, в которой входные данные будут запоминаться в массиве, после чего будут проверены все возможные пары элементов. Перед программой укажите версию языка программирования.
ОБЯЗАТЕЛЬНО укажите, что программа является решением ЗАДАНИЯ А. Максимальная оценка за выполнение задания А — 2 балла.
Б. Напишите программу для решения поставленной задачи, которая будет эффективна как по времени, так и по памяти (или хотя бы по одной из этих характеристик). Программа считается эффективной по времени, если время работы программы пропорционально количеству полученных показаний прибора N, т. е. при увеличении N в k раз время работы программы должно увеличиваться не более чем в k раз. Программа считается эффективной по памяти, если размер памяти, использованной в программе для хранения данных, не зависит от числа А и не превышает 1 килобайта.
Перед программой укажите версию языка программирования и кратко опишите использованный алгоритм.
ОБЯЗАТЕЛЬНО укажите, что программа является решением ЗАДАНИЯ Б. Максимальная оценка за правильную программу, эффективную по времени и по памяти, — 4 балла.
Максимальная оценка за правильную программу, эффективную по времени, но неэффективную по памяти, — 3 балла.
Пример входных данных:
10 5 4 3 2 1 6 7 8 9 4
Программа должна вывести одно число — описанное в условии произведение, либо -1, если получить такое произведение не удаётся.
Пример выходных данных для приведённого выше примера входных данных:
16
Показать решение:
* Учтите, что в данных заданиях более не требуется учитывать эффективность алгоритма (с 2021 года)!
-
✎ Задание А (решение на языке Паскаль, версия pascalABC):
Ниже приводится пример переборного решения на Паскале, неэффективного ни по памяти, ни по времени, но являющегося правильным ответом на задание А.
const s = 8;{требуемое расстояние между показаниями} var N: integer; a: array[1..10000] of integer; {все показания датчика} mp: integer; {минимальное значение произведения} i, j: integer; begin readln(N); {Ввод значений датчика} for i := 1 to N do readln(a[i]); mp := 1000 * 1000 + 1; for i := 1 to N - s do begin for j := i + s to N do begin if (a[i] * a[j] mod 2 = 0) and (a[i] * a[j] < mp) then mp := a[i] * a[j] end; end; if mp = 1000 * 1000 + 1 then mp := -1; writeln(mp) end.
✎Задание Б (решение на языке Паскаль, версия pascalABC):
Чтобы произведение было чётным, хотя бы один сомножитель должен быть чётным, поэтому при поиске подходящих произведений чётные показания прибора можно рассматривать в паре с любыми другими, а нечётные — только с чётными.
Для каждого показания с номером k, начиная с k = 9, рассмотрим все допустимые по условиям задачи пары, в которых данное показание получено вторым. Минимальное произведение из всех этих пар будет получено, если первым в паре будет взято минимальное подходящее показание среди всех, полученных от начала приёма и до показания с номером k — 8. Если очередное показание чётное, минимальное среди предыдущих может быть любым, если нечётное — только чётным.
Для получения эффективного по времени решения нужно по мере ввода данных помнить абсолютное минимальное и минимальное чётное показание на каждый момент времени, каждое вновь полученное показание умножать на соответствующий ему минимум, имевшийся на 8 элементов ранее, и выбрать минимальное из всех таких произведений. Ниже приводится пример такой программы на Паскале, эффективной по памяти и по времени.
const s = 8; {требуемое расстояние между показаниями} amax = 1001;{больше максимально возможного показания} var N: integer; a: array[1..s] of integer; {хранение s показаний датчика} a_: integer; {ввод очередного показания} ma: integer; {минимальное число без s последних} me: integer; {минимальное чётное число без s последних} mp: integer; {минимальное значение произведения} p: integer; i, j: integer; begin readln(N); {Ввод первых s чисел} for i := 1 to s do readln(a[i]); {Ввод остальных значений, поиск минимального произведения} ma := amax;me := amax;mp := amax * amax; for i := s + 1 to N do begin readln(a_); if a[1] < ma then ma := a[1]; if (a[1] mod 2 = 0) and (a[1] < me) then me := a[1]; if a_ mod 2 = 0 then p := a_ * ma else if me < amax then p := a_ * me else p := amax * amax; if (p < mp) then mp := p; {сдвигаем элементы вспомогательного массива влево} for j := 1 to s - 1 do a[j] := a[j + 1]; a[s] := a_ end; if mp = amax * amax then mp := -1; writeln(mp) end.





