Programming Taskbook


E-mail:

Пароль:

Регистрация пользователя   Восстановление пароля

 

ЮФУ

Электронный задачник по программированию

©  М. Э. Абрамян (Южный федеральный университет), 1998–2021

 

PT for Exam | Группы заданий | ExamTaskC

PrevNext


ЕГЭ по информатике: задачи повышенной сложности

При выполнении заданий данной группы вместо специальных операций ввода-вывода, предоставляемых задачником, необходимо применять стандартные операции используемого языка программирования: процедуры Read/ReadlnWrite/Writeln для языка Pascal, потоки cincout для языка C++, функции inputprint для языка Python 3.

Если в задаче не указывается максимальное количество элементов в исходной последовательности, то это означает, что эффективный алгоритм ее решения не требует одновременного хранения всех элементов в массиве (списке). Если подобные задачи решаются с использованием менее эффективных алгоритмов, в которых вся исходная последовательность запоминается в массиве, то можно считать, что количество элементов последовательности не превосходит 100.

Обработка сложных наборов данных

Во всех заданиях предполагается, что элементы как исходных, так и результирующих данных, расположенных на одной строке, разделяются ровно одним пробелом, а в начале и конце каждой строки пробелы отсутствуют. Длина каждого строкового элемента исходных данных не превосходит 20 символов, инициалы не содержат пробелов и всегда состоят из 4 символов (заглавные буквы имени и отчества, за которыми указываются точки, например, A.Б.). Если числа содержат дробную часть, то она отделяется от целой части десятичной точкой.

ExamTaskC1°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Год> <Номер месяца> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Найти строку исходных данных с минимальной продолжительностью занятий. Вывести эту продолжительность, а также соответствующие ей год и номер месяца (в указанном порядке). Если имеется несколько строк с минимальной продолжительностью, то вывести данные той из них, которая является последней в исходном наборе. Каждое число выводить на новой строке.

ExamTaskC2°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Год> <Номер месяца> <Продолжительность занятий (в часах)> <Код клиента>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Найти строку исходных данных с максимальной продолжительностью занятий. Вывести эту продолжительность, а также соответствующие ей год и номер месяца (в указанном порядке). Если имеется несколько строк с максимальной продолжительностью, то вывести данные той из них, которая является первой в исходном наборе. Каждое число выводить на новой строке.

ExamTaskC3°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Продолжительность занятий (в часах)> <Код клиента> <Год> <Номер месяца>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Найти строку исходных данных с минимальной продолжительностью занятий. Вывести эту продолжительность, а также соответствующие ей год и номер месяца (в указанном порядке). Если имеется несколько строк с минимальной продолжительностью, то вывести данные, соответствующие самой ранней дате. Каждое число выводить на новой строке.

ExamTaskC4°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Номер месяца> <Год> <Код клиента> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Найти строку исходных данных с максимальной продолжительностью занятий. Вывести эту продолжительность, а также соответствующие ей год и номер месяца (в указанном порядке). Если имеется несколько строк с максимальной продолжительностью, то вывести данные, соответствующие самой поздней дате. Каждое число выводить на новой строке.

ExamTaskC5°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Год> <Номер месяца> <Продолжительность занятий (в часах)> <Код клиента>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Определить год, в котором суммарная продолжительность занятий всех клиентов была наибольшей, и вывести этот год и наибольшую суммарную продолжительность. Если таких годов было несколько, то вывести наименьший из них. Каждое число выводить на новой строке.

ExamTaskC6°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Продолжительность занятий (в часах)> <Год> <Номер месяца> <Код клиента>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Определить год, в котором суммарная продолжительность занятий всех клиентов была наименьшей (годы с нулевой продолжительностью не учитывать), и вывести этот год и наименьшую суммарную продолжительность. Если таких годов было несколько, то вывести наибольший из них. Каждое число выводить на новой строке.

ExamTaskC7°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Продолжительность занятий (в часах)> <Код клиента> <Год> <Номер месяца>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого клиента, присутствующего в исходных данных, определить суммарную продолжительность занятий в течение всех лет (вначале выводить код клиента, затем суммарную продолжительность). Сведения о каждом клиенте выводить на новой строке и упорядочивать по возрастанию кода клиента.

ExamTaskC8°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Год> <Номер месяца> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого клиента, присутствующего в исходных данных, определить общее количество месяцев, в течение которых он посещал занятия (вначале выводить код клиента, затем количество месяцев). Сведения о каждом клиенте выводить на новой строке и упорядочивать по возрастанию кода клиента.

ExamTaskC9°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Год> <Номер месяца> <Продолжительность занятий (в часах)> <Код клиента>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого клиента, присутствующего в исходных данных, определить суммарную продолжительность занятий в течение всех лет (вначале выводить суммарную продолжительность, затем код клиента). Сведения о каждом клиенте выводить на новой строке и упорядочивать по убыванию суммарной продолжительности, а при их равенстве — по возрастанию кода клиента.

ExamTaskC10°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Продолжительность занятий (в часах)> <Год> <Номер месяца>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого клиента, присутствующего в исходных данных, определить общее количество месяцев, в течение которых он посещал занятия (вначале выводить количество месяцев, затем код клиента). Сведения о каждом клиенте выводить на новой строке и упорядочивать по возрастанию количества месяцев, а при их равенстве — по возрастанию кода клиента.

ExamTaskC11°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Год> <Номер месяца> <Код клиента> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого месяца определить суммарную продолжительность занятий всех клиентов за все годы (вначале выводить номер месяца, затем суммарную продолжительность). Если данные о некотором месяце отсутствуют, то для этого месяца вывести 0. Сведения о каждом месяце выводить на новой строке и упорядочивать по возрастанию номера месяца.

ExamTaskC12°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Продолжительность занятий (в часах)> <Год> <Номер месяца>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого месяца определить суммарную продолжительность занятий всех клиентов за все годы (вначале выводить суммарную продолжительность, затем номер месяца). Если данные о некотором месяце отсутствуют, то для этого месяца вывести 0. Сведения о каждом месяце выводить на новой строке и упорядочивать по убыванию суммарной продолжительности, а при равной продолжительности — по возрастанию номера месяца.

ExamTaskC13°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается код K одного из клиентов, во второй строке — целое число N, а каждая из последующих N строк имеет формат

<Продолжительность занятий (в часах)> <Год> <Номер месяца> <Код клиента>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, в котором клиент с кодом K посещал центр, определить месяц, в котором продолжительность занятий данного клиента была наибольшей для данного года (если таких месяцев несколько, то выбирать месяц с наименьшим номером). Сведения о каждом годе выводить на новой строке в следующем порядке: год, номер месяца, продолжительность занятий в этом месяце. Упорядочивать сведения по убыванию номера года. Если данные о клиенте с кодом K отсутствуют, то вывести строку «Нет данных».

ExamTaskC14°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается код K одного из клиентов, во второй строке — целое число N, а каждая из последующих N строк имеет формат

<Год> <Номер месяца> <Код клиента> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, в котором клиент с кодом K посещал центр, определить месяц, в котором продолжительность занятий данного клиента была наименьшей для данного года (если таких месяцев несколько, то выбирать месяц с наибольшим номером; месяцы с нулевой продолжительностью занятий не учитывать). Сведения о каждом годе выводить на новой строке в следующем порядке: год, номер месяца, продолжительность занятий в этом месяце. Упорядочивать сведения по возрастанию номера года. Если данные о клиенте с кодом K отсутствуют, то вывести строку «Нет данных».

ExamTaskC15°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается код K одного из клиентов, во второй строке — целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Продолжительность занятий (в часах)> <Год> <Номер месяца>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, в котором клиент с кодом K посещал центр, определить месяц, в котором продолжительность занятий данного клиента была наибольшей для данного года (если таких месяцев несколько, то выбирать месяц с наименьшим номером). Сведения о каждом годе выводить на новой строке в следующем порядке: наибольшая продолжительность занятий в году, год, номер месяца. Упорядочивать сведения по убыванию продолжительности занятий, а при равной продолжительности — по возрастанию номера года. Если данные о клиенте с кодом K отсутствуют, то вывести строку «Нет данных».

ExamTaskC16°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается код K одного из клиентов, во второй строке — целое число N, а каждая из последующих N строк имеет формат

<Продолжительность занятий (в часах)> <Код клиента> <Год> <Номер месяца>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, в котором клиент с кодом K посещал центр, определить месяц, в котором продолжительность занятий данного клиента была наименьшей для данного года (если таких месяцев несколько, то выбирать месяц с наибольшим номером; месяцы с нулевой продолжительностью занятий не учитывать). Сведения о каждом годе выводить на новой строке в следующем порядке: наименьшая продолжительность занятий, год, номер месяца. Упорядочивать сведения по возрастанию продолжительности занятий, а при равной продолжительности — по возрастанию номера года. Если данные о клиенте с кодом K отсутствуют, то вывести строку «Нет данных».

ExamTaskC17°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается код K одного из клиентов, во второй строке — целое число N, а каждая из последующих N строк имеет формат

<Номер месяца> <Год> <Код клиента> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, в котором клиент с кодом K посещал центр, определить число месяцев, для которых продолжительность занятий данного клиента превосходила 15 часов (вначале выводить год, затем число месяцев). Если для некоторого года требуемые месяцы отсутствуют, то вывести для него 0. Сведения о каждом годе выводить на новой строке; данные упорядочивать по возрастанию номера года. Если данные об указанном клиенте отсутствуют, то вывести строку «Нет данных».

ExamTaskC18°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается код K одного из клиентов, во второй строке — целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Продолжительность занятий (в часах)> <Номер месяца> <Год>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, в котором клиент с кодом K посещал центр, определить число месяцев, для которых продолжительность занятий данного клиента превосходила 15 часов (вначале выводить число месяцев, затем год). Если для некоторого года требуемые месяцы отсутствуют, то вывести для него 0. Сведения о каждом годе выводить на новой строке; данные упорядочивать по убыванию числа месяцев, а при равном числе месяцев — по возрастанию номера года. Если данные об указанном клиенте отсутствуют, то вывести строку «Нет данных».

ExamTaskC19°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Год> <Номер месяца> <Код клиента> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждой пары «год–месяц», присутствующей в исходных данных, определить количество клиентов, которые посещали центр в указанное время (вначале выводится год, затем месяц, затем количество клиентов). Сведения о каждой паре «год–месяц» выводить на новой строке и упорядочивать по убыванию номера года, а для одинакового номера года — по возрастанию номера месяца.

ExamTaskC20°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Продолжительность занятий (в часах)> <Год> <Номер месяца>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждой пары «год–месяц», присутствующей в исходных данных, определить общую продолжительность занятий всех клиентов в указанное время (вначале выводится год, затем месяц, затем общая продолжительность). Сведения о каждой паре «год–месяц» выводить на новой строке и упорядочивать по возрастанию номера года, а для одинакового номера года — по возрастанию номера месяца.

ExamTaskC21°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Продолжительность занятий (в часах)> <Год> <Номер месяца> <Код клиента>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждой пары «год–месяц», присутствующей в исходных данных, определить количество клиентов, которые посещали центр в указанное время (вначале выводится количество клиентов, затем год, затем месяц). Сведения о каждой паре «год–месяц» выводить на новой строке и упорядочивать по убыванию количества клиентов, для одинакового количества клиентов — по возрастанию номера года, а для одинакового номера года — по возрастанию номера месяца.

ExamTaskC22°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Код клиента> <Год> <Номер месяца> <Продолжительность занятий (в часах)>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждой пары «год–месяц», присутствующей в исходных данных, определить общую продолжительность занятий всех клиентов в указанное время (вначале выводится общая продолжительность, затем год, затем месяц). Сведения о каждой паре «год–месяц» выводить на новой строке и упорядочивать по возрастанию общей продолжительности занятий, для одинаковой продолжительности — по убыванию номера года, а для одинакового номера года — по возрастанию номера месяца.

ExamTaskC23°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Номер месяца> <Год> <Продолжительность занятий (в часах)> <Код клиента>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, присутствующего в исходных данных, определить месяцы, в которых суммарная длительность занятий всех клиентов составляла более 25% от суммарной длительности за этот год (вначале выводить год, затем месяцы по возрастанию их номеров). Если в некотором году ни для одного месяца не выполнялось требуемое условие, то после номера года выводить текст «Нет». Сведения о каждом годе выводить на новой строке и упорядочивать по возрастанию номера года.

ExamTaskC24°. На вход подаются сведения о клиентах фитнес-центра. В первой строке указывается целое число N, а каждая из последующих N строк имеет формат

<Продолжительность занятий (в часах)> <Код клиента> <Номер месяца> <Год>

Все данные целочисленные. Значение года лежит в диапазоне от 2000 до 2010, код клиента — в диапазоне 10−99, продолжительность занятий — в диапазоне 1−30. Для каждого года, присутствующего в исходных данных, определить количество месяцев, в которых суммарная длительность занятий всех клиентов составляла более 15% от суммарной длительности за этот год (вначале выводить количество месяцев, затем год). Если в некотором году ни для одного месяца не выполнялось требуемое условие, то вывести для него 0. Сведения о каждом годе выводить на новой строке и упорядочивать по убыванию количества месяцев, а для одинакового количества — по возрастанию номера года.

ExamTaskC25°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Номер школы> <Год поступления> <Фамилия>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Для каждого года, присутствующего в исходных данных, вывести общее число абитуриентов, поступивших в этом году (вначале выводить год, затем число абитуриентов). Сведения о каждом годе выводить на новой строке и упорядочивать по возрастанию номера года.

ExamTaskC26°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Год поступления> <Номер школы> <Фамилия>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Определить, в какие годы общее число абитуриентов для всех школ было наибольшим, и вывести это число, а также количество таких лет. Каждое число выводить на новой строке.

ExamTaskC27°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Номер школы> <Год поступления> <Фамилия>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Определить, в какие годы общее число абитуриентов для всех школ было наибольшим, и вывести это число, а также годы, в которые оно было достигнуто (годы упорядочивать по возрастанию, каждое число выводить на новой строке).

ExamTaskC28°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Год поступления> <Номер школы> <Фамилия>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Для каждого года, присутствующего в исходных данных, вывести общее число абитуриентов, поступивших в этом году (вначале указывать число абитуриентов, затем год). Сведения о каждом годе выводить на новой строке и упорядочивать по убыванию числа поступивших, а для совпадающих чисел — по возрастанию номера года.

ExamTaskC29°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Номер школы> <Год поступления> <Фамилия>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Найти годы, для которых число абитуриентов было не меньше среднего значения по всем годам (вначале указывать год, затем число абитуриентов для этого года). При вычислении среднего значения учитывать только годы, присутствующие в исходных данных; среднее значение может иметь ненулевую дробную часть. Сведения о каждом годе выводить на новой строке и упорядочивать по возрастанию номера года.

ExamTaskC30°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Год поступления> <Номер школы> <Фамилия>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Найти годы, для которых число абитуриентов было не меньше среднего значения по всем годам (вначале указывать число абитуриентов для данного года, затем год). При вычислении среднего значения учитывать только годы, присутствующие в исходных данных; среднее значение может иметь ненулевую дробную часть. Сведения о каждом годе выводить на новой строке и упорядочивать по убыванию числа абитуриентов, а для совпадающих чисел — по возрастанию номера года.

ExamTaskC31°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Фамилия> <Год поступления> <Номер школы>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Для каждого номера школы, присутствующего в исходных данных, вывести общее число абитуриентов за все годы (вначале указывать номер школы, затем число абитуриентов). Сведения о каждой школе выводить на новой строке и упорядочивать по возрастанию номеров школ.

ExamTaskC32°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Фамилия> <Номер школы> <Год поступления>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Определить, для каких школ общее число абитуриентов за все годы было наибольшим, и вывести это число, а также количество таких школ. Каждое число выводить на новой строке.

ExamTaskC33°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Фамилия> <Год поступления> <Номер школы>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Определить, для каких школ общее количество абитуриентов за все годы было наибольшим, и вывести это количество, а также номера школ, для которых оно было достигнуто (номера школ упорядочивать по убыванию, каждое число выводить на новой строке).

ExamTaskC34°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Фамилия> <Номер школы> <Год поступления>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Для каждого номера школы, присутствующего в исходных данных, вывести общее число абитуриентов за все годы (вначале указывать число абитуриентов, затем номер школы). Сведения о каждой школе выводить на новой строке и упорядочивать по возрастанию числа абитуриентов, а для одинаковых чисел — по возрастанию номеров школ.

ExamTaskC35°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Фамилия> <Год поступления> <Номер школы>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Найти школы, для которых общее число абитуриентов за все годы было не меньше среднего значения по всем школам (вначале указывать номер школы, затем число абитуриентов для этой школы). При вычислении среднего значения учитывать только школы, присутствующие в исходных данных; среднее значение может иметь ненулевую дробную часть. Сведения о каждой школе выводить на новой строке и упорядочивать по убыванию номера школы.

ExamTaskC36°. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов N, каждая из последующих N строк имеет формат

<Фамилия> <Номер школы> <Год поступления>

Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Найти школы, для которых общее число абитуриентов за все годы было не меньше среднего значения по всем школам (вначале указывать число абитуриентов для данной школы, затем номер школы). При вычислении среднего значения учитывать только школы, присутствующие в исходных данных; среднее значение может иметь ненулевую дробную часть. Сведения о каждой школе выводить на новой строке и упорядочивать по возрастанию числа абитуриентов, а для одинаковых чисел — по убыванию номера школы.

ExamTaskC37°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Номер квартиры> <Фамилия> <Задолженность>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 4 подъездов дома вывести сведения о задолжниках, живущих в этом подъезде: номер подъезда, число задолжников, средняя задолженность для жильцов этого подъезда (выводится с двумя дробными знаками). Жильцы, не имеющие долга, при вычислении средней задолженности не учитываются. Сведения о каждом подъезде выводить на отдельной строке и упорядочивать по возрастанию номера подъезда. Если в каком-либо подъезде задолжники отсутствуют, то данные об этом подъезде не выводить.

ExamTaskC38°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Фамилия> <Задолженность> <Номер квартиры>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 4 подъездов дома вывести сведения о задолжниках, живущих в этом подъезде: число задолжников, номер подъезда, средняя задолженность для жильцов этого подъезда (выводится с двумя дробными знаками). Жильцы, не имеющие долга, при вычислении средней задолженности не учитываются. Сведения о каждом подъезде выводить на отдельной строке и упорядочивать по убыванию числа задолжников, а для совпадающих чисел — по возрастанию номера подъезда. Если в каком-либо подъезде задолжники отсутствуют, то данные об этом подъезде не выводить.

ExamTaskC39°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Задолженность> <Фамилия> <Номер квартиры>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 9 этажей дома вывести сведения о задолжниках, живущих на этом этаже: номер этажа, суммарная задолженность для жильцов этого этажа (выводится с двумя дробными знаками), число задолжников. Сведения о каждом этаже выводить на отдельной строке и упорядочивать по убыванию номера этажа. Если на каком-либо этаже задолжники отсутствуют, то данные об этом этаже не выводить.

ExamTaskC40°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Фамилия> <Номер квартиры> <Задолженность>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 9 этажей дома вывести сведения о задолжниках, живущих на этом этаже: число задолжников, номер этажа, суммарная задолженность для жильцов этого этажа (выводится с двумя дробными знаками). Сведения о каждом этаже выводить на отдельной строке и упорядочивать по возрастанию числа задолжников, а для совпадающих чисел — по возрастанию этажа. Если на каком-либо этаже задолжники отсутствуют, то данные об этом этаже не выводить.

ExamTaskC41°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Номер квартиры> <Фамилия> <Задолженность>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 4 подъездов дома найти жильца с наибольшей задолженностью и вывести сведения о нем: номер подъезда, номер квартиры, фамилия жильца, задолженность (выводится с двумя дробными знаками). Считать, что в наборе исходных данных все задолженности имеют различные значения. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по возрастанию номера подъезда. Если в каком-либо подъезде задолжники отсутствуют, то данные об этом подъезде не выводить.

ExamTaskC42°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Задолженность> <Фамилия> <Номер квартиры>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 4 подъездов дома найти жильца с наибольшей задолженностью и вывести сведения о нем: задолженность (выводится с двумя дробными знаками), номер подъезда, номер квартиры, фамилия жильца. Считать, что в наборе исходных данных все задолженности имеют различные значения. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по убыванию размера задолженности. Если в каком-либо подъезде задолжники отсутствуют, то данные об этом подъезде не выводить.

ExamTaskC43°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Фамилия> <Задолженность> <Номер квартиры>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 9 этажей дома найти жильца с наименьшей задолженностью и вывести сведения о нем: номер квартиры, номер этажа, фамилия жильца, задолженность (выводится с двумя дробными знаками). Считать, что в наборе исходных данных все задолженности имеют различные значения. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по возрастанию номера квартиры. Если на каком-либо этаже задолжники отсутствуют, то данные об этом этаже не выводить.

ExamTaskC44°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Фамилия> <Номер квартиры> <Задолженность>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 9 этажей дома найти жильца с наименьшей задолженностью и вывести сведения о нем: задолженность (выводится с двумя дробными знаками), номер этажа, номер квартиры, фамилия жильца. Считать, что в наборе исходных данных все задолженности имеют различные значения. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по убыванию размера задолженности. Если на каком-либо этаже задолжники отсутствуют, то данные об этом этаже не выводить.

ExamTaskC45°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Номер квартиры> <Задолженность> <Фамилия>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Найти жильцов, долг которых не меньше величины средней задолженности по дому, и вывести сведения о них: номер квартиры, фамилия, задолженность (выводится с двумя дробными знаками). Жильцы, не имеющие долга, при вычислении средней задолженности не учитываются. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по возрастанию номеров квартир.

ExamTaskC46°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Задолженность> <Номер квартиры> <Фамилия>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Найти жильцов, долг которых не больше величины средней задолженности по дому, и вывести сведения о них: номер этажа, номер квартиры, фамилия, задолженность (выводится с двумя дробными знаками). Жильцы, не имеющие долга, при вычислении средней задолженности не учитываются. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по убыванию номеров этажей, а для одинаковых этажей — по возрастанию номеров квартир.

ExamTaskC47°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Задолженность> <Фамилия> <Номер квартиры>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 4 подъездов дома найти задолжников, долг которых не меньше величины средней задолженности по данному подъезду, и вывести сведения о них: номер подъезда, задолженность (выводится с двумя дробными знаками), фамилия, номер квартиры. Жильцы, не имеющие долга, при вычислении средней задолженности не учитываются. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по возрастанию номеров подъездов, а для одинаковых подъездов — по убыванию размера задолженности. Считать, что в наборе исходных данных все задолженности имеют различные значения.

ExamTaskC48°. На вход подаются сведения о задолженности по оплате коммунальных услуг жильцов 144-квартирного 9-этажного дома. В первой строке указывается общее число задолжников N. Каждая из последующих N строк содержит информацию об одном из задолжников в формате

<Номер квартиры> <Фамилия> <Задолженность>

Задолженность указывается в виде дробного числа (целая часть — рубли, дробная часть — копейки). В каждом подъезде на каждом этаже располагаются по 4 квартиры. Для каждого из 9 этажей дома найти задолжников, долг которых не больше величины средней задолженности по данному этажу, и вывести сведения о них: номер этажа, задолженность (выводится с двумя дробными знаками), фамилия, номер квартиры. Жильцы, не имеющие долга, при вычислении средней задолженности не учитываются. Сведения о каждом задолжнике выводить на отдельной строке и упорядочивать по возрастанию номеров этажей, а для одинаковых этажей — по возрастанию размера задолженности. Считать, что в наборе исходных данных все задолженности имеют различные значения.

ExamTaskC49°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Компания> <Марка бензина> <Цена 1 литра (в копейках)> <Улица>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой марки бензина, присутствующей в исходных данных, определить минимальную и максимальную цену литра бензина этой марки (вначале выводить марку, затем цены в указанном порядке). Сведения о каждой марке выводить на новой строке и упорядочивать по убыванию значения марки.

ExamTaskC50°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Цена 1 литра (в копейках)> <Марка бензина> <Компания> <Улица>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой марки бензина, присутствующей в исходных данных, определить количество станций, предлагавших эту марку (вначале выводить количество станций, затем номер марки). Сведения о каждой марке выводить на новой строке и упорядочивать по возрастанию количества станций, а для одинакового количества — по возрастанию значения марки.

ExamTaskC51°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится значение M одной из марок бензина, во второй строке указывается целое число N, а каждая из последующих N строк имеет формат

<Улица> <Компания> <Марка бензина> <Цена 1 литра (в копейках)>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой улицы определить количество АЗС, предлагавших марку бензина M (вначале выводить количество АЗС на данной улице, затем название улицы; количество АЗС может быть равно 0). Сведения о каждой улице выводить на новой строке и упорядочивать по возрастанию количества АЗС, а для одинакового количества — по названиям улиц в алфавитном порядке.

ExamTaskC52°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Компания> <Улица> <Марка бензина> <Цена 1 литра (в копейках)>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой улицы определить количество АЗС, предлагавших определенную марку бензина (вначале выводить название улицы, затем три числа — количество АЗС для бензина марки 92, 95 и 98; некоторые из этих чисел могут быть равны 0). Сведения о каждой улице выводить на новой строке и упорядочивать по названиям улиц в алфавитном порядке.

ExamTaskC53°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится значение M одной из марок бензина, во второй строке указывается целое число N, а каждая из последующих N строк имеет формат

<Марка бензина> <Улица> <Компания> <Цена 1 литра (в копейках)>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой улицы, на которой имеются АЗС с бензином марки M, определить максимальную цену бензина этой марки (вначале выводить максимальную цену, затем название улицы). Сведения о каждой улице выводить на новой строке и упорядочивать по возрастанию максимальной цены, а для одинаковой цены — по названиям улиц в алфавитном порядке. Если ни одной АЗС с бензином марки M не найдено, то вывести текст «Нет».

ExamTaskC54°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Марка бензина> <Компания> <Улица> <Цена 1 литра (в копейках)>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой улицы определить минимальную цену бензина каждой марки (вначале выводить название улицы, затем три числа — минимальную цену для бензина марки 92, 95 и 98). При отсутствии бензина нужной марки выводить число 0. Сведения о каждой улице выводить на новой строке и упорядочивать по названиям улиц в алфавитном порядке.

ExamTaskC55°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится значение M одной из марок бензина, во второй строке указывается целое число N, а каждая из последующих N строк имеет формат

<Цена 1 литра (в копейках)> <Марка бензина> <Улица> <Компания>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой компании определить разброс цен на бензин указанной марки M (вначале выводить разность максимальной и минимальной цены бензина марки M для АЗС данной компании, затем — название компании). Если бензин марки M не предлагался данной компанией, то разброс положить равным −1. Сведения о каждой компании выводить на новой строке, данные упорядочивать по убыванию значений разброса, а для равных значений разброса — по названиям компаний в алфавитном порядке.

ExamTaskC56°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Марка бензина> <Цена 1 литра (в копейках)> <Компания> <Улица>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой компании определить разброс цен для всех марок бензина (вначале выводить название компании, затем три числа — разброс цен для бензина марки 92, 95 и 98). При отсутствии бензина нужной марки выводить число −1. Сведения о каждой компании выводить на новой строке и упорядочивать по названиям компаний в алфавитном порядке.

ExamTaskC57°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Компания> <Цена 1 литра (в копейках)> <Марка бензина> <Улица>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой улицы определить количество АЗС (вначале выводить название улицы, затем количество АЗС). Сведения о каждой улице выводить на новой строке и упорядочивать по названиям улиц в алфавитном порядке.

ExamTaskC58°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Улица> <Марка бензина> <Цена 1 литра (в копейках)> <Компания>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой компании определить количество АЗС (вначале выводить количество АЗС, затем — название компании). Сведения о каждой компании выводить на новой строке и упорядочивать по убыванию количества АЗС, а при равных количествах — по названиям компаний в алфавитном порядке.

ExamTaskC59°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Цена 1 литра (в копейках)> <Улица> <Марка бензина> <Компания>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Вывести данные обо всех АЗС, предлагавших все три марки бензина (вначале выводится название улицы, затем название компании). Сведения о каждой АЗС выводить на новой строке и упорядочивать по названиям улиц в алфавитном порядке, а для одинаковых названий улиц — по названиям компаний (также в алфавитном порядке). Если ни одной требуемой АЗС не найдено, то вывести текст «Нет».

ExamTaskC60°. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится число N, каждая из последующих N строк имеет формат

<Цена 1 литра (в копейках)> <Компания> <Улица> <Марка бензина>

Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Вывести данные обо всех АЗС, предлагавших не менее двух марок бензина (вначале выводится название компании, затем название улицы, затем количество предлагавшихся марок бензина). Сведения о каждой АЗС выводить на новой строке и упорядочивать по названиям компаний в алфавитном порядке, а для одинаковых компаний — по названиям улиц (также в алфавитном порядке). Если ни одной требуемой АЗС не найдено, то вывести текст «Нет».

ExamTaskC61°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Фамилия> <Инициалы> <Номер школы> <Баллы ЕГЭ>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Определить наименьший суммарный балл и вывести его. Вывести также сведения обо всех учащихся, получивших наименьший суммарный балл (для каждого учащегося указывать фамилию, инициалы и номер школы). Сведения о каждом учащемся выводить на отдельной строке и располагать в порядке их следования в исходном наборе.

ExamTaskC62°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Фамилия> <Инициалы> <Баллы ЕГЭ> <Номер школы>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Определить два наибольших суммарных балла и вывести эти баллы в одной строке в порядке убывания (считать, что в исходных данных всегда присутствуют учащиеся с различными суммарными баллами). Также вывести сведения обо всех учащихся, получивших один из двух наибольших суммарных баллов (для каждого учащегося указывать фамилию, инициалы и суммарный балл). Сведения о каждом учащемся выводить на отдельной строке и располагать в порядке их следования в исходном наборе.

ExamTaskC63°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Баллы ЕГЭ> <Фамилия> <Инициалы> <Номер школы>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Для каждой школы, присутствующей в наборе исходных данных, вывести сведения об учащемся, набравшем наибольший балл ЕГЭ по информатике среди учащихся этой школы. Если таких учащихся несколько, то вывести сведения о первом учащемся (в порядке их следования в исходном наборе). Сведения о каждом учащемся выводить на отдельной строке, указывая номер школы, фамилию учащегося, его инициалы и балл ЕГЭ по информатике. Данные упорядочивать по возрастанию номера школы.

ExamTaskC64°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Номер школы> <Фамилия> <Инициалы> <Баллы ЕГЭ>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Для каждой школы, присутствующей в наборе исходных данных, вывести сведения об учащемся, набравшем наименьший суммарный балл ЕГЭ среди учащихся этой школы. Если таких учащихся несколько, то вывести сведения о последнем учащемся (в порядке их следования в исходном наборе). Сведения о каждом учащемся выводить на отдельной строке, указывая номер школы, суммарный балл ЕГЭ, фамилию учащегося и его инициалы. Данные упорядочивать по убыванию номера школы.

ExamTaskC65°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Номер школы> <Баллы ЕГЭ> <Фамилия> <Инициалы>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Для каждой школы, присутствующей в наборе исходных данных, и каждого предмета определить количество учащихся, набравших не менее 50 баллов по этому предмету (вначале выводится номер школы, затем три числа — количество учащихся этой школы, набравших требуемое число баллов по математике, русскому языку и информатике; некоторые из чисел могут быть равны 0). Сведения о каждой школе выводить на новой строке и упорядочивать по возрастанию номера школы.

ExamTaskC66°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Фамилия> <Инициалы> <Номер школы> <Баллы ЕГЭ>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Для каждой школы, присутствующей в наборе исходных данных, определить количество учащихся, суммарный балл которых превышает 150 баллов (вначале выводится количество учащихся, набравших в сумме более 150 баллов, затем номер школы; количество учащихся может быть равно 0). Сведения о каждой школе выводить на новой строке и упорядочивать по убыванию количества учащихся, а для одинакового количества — по возрастанию номера школы.

ExamTaskC67°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Фамилия> <Инициалы> <Баллы ЕГЭ> <Номер школы>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Для каждой школы, присутствующей в наборе исходных данных, и каждого предмета найти среднее значение балла ЕГЭ, набранного учащимися этой школы (среднее значение является целым числом — результатом деления нацело суммы баллов всех учащихся на количество учащихся). Сведения о каждой школе выводить на отдельной строке, указывая номер школы и средние баллы по математике, русскому языку и информатике (в указанном порядке). Данные упорядочивать по убыванию номера школы.

ExamTaskC68°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Баллы ЕГЭ> <Номер школы> <Фамилия> <Инициалы>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Для каждой школы, присутствующей в наборе исходных данных, найти среднее значение суммарного балла ЕГЭ, набранного учащимися этой школы (среднее значение является целым числом — результатом деления нацело суммы баллов всех учащихся на количество учащихся). Сведения о каждой школе выводить на отдельной строке, указывая средний суммарный балл ЕГЭ и номер школы. Данные упорядочивать по убыванию среднего балла, а при равных значениях среднего балла — по возрастанию номера школы.

ExamTaskC69°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Номер школы> <Фамилия> <Инициалы> <Баллы ЕГЭ>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Вывести сведения об учащихся, набравших менее 50 баллов по каждому предмету (вначале выводится номер школы, затем фамилия, инициалы и суммарный балл ЕГЭ по всем предметам). Сведения о каждом учащемся выводить на отдельной строке и упорядочивать по возрастанию номера школы, а для совпадающих номеров — в порядке следования учащихся в наборе исходных данных. Если ни один из учащихся не удовлетворяет указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC70°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Баллы ЕГЭ> <Фамилия> <Инициалы> <Номер школы>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Вывести сведения об учащихся, набравших не менее 50 баллов по каждому предмету (вначале выводится фамилия и инициалы, затем номер школы и суммарный балл ЕГЭ по всем предметам). Сведения о каждом учащемся выводить на отдельной строке в алфавитном порядке фамилий и инициалов, а при их совпадении — в порядке следования учащихся в наборе исходных данных. Если ни один из учащихся не удовлетворяет указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC71°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Фамилия> <Инициалы> <Номер школы> <Баллы ЕГЭ>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Вывести сведения об учащихся, набравших менее 10 баллов хотя бы по одному из предметов (вначале выводится номер школы, затем фамилия и инициалы). Сведения о каждом учащемся выводить на отдельной строке и располагать по убыванию номера школы, а для совпадающих номеров — в алфавитном порядке фамилий и инициалов. Если ни один из учащихся не удовлетворяет указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC72°. На вход подаются сведения о сдаче ЕГЭ по математике, русскому языку и информатике (в указанном порядке). В первой строке указывается количество учащихся N, каждая из последующих N строк имеет формат

<Фамилия> <Инициалы> <Баллы ЕГЭ> <Номер школы>

Количество учащихся не превосходит 100. Номер школы содержит не более двух цифр, баллы ЕГЭ представляют собой три целых числа в диапазоне от 0 до 100, которые отделяются друг от друга одним пробелом. Вывести сведения об учащихся, набравших более 90 баллов хотя бы по одному из предметов (вначале выводится фамилия и инициалы, затем номер школы). Сведения о каждом учащемся выводить на отдельной строке и располагать в алфавитном порядке фамилий и инициалов, а при их совпадении — по возрастанию номера школы. Если ни один из учащихся не удовлетворяет указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC73°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Фамилия> <Инициалы> <Класс> <Название предмета> <Оценка>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Для каждого учащегося определить среднюю оценку по каждому предмету и вывести ее с двумя дробными знаками (если по какому-либо предмету учащийся не получил ни одной оценки, то вывести для этого предмета 0.00). Сведения о каждом учащемся выводить на отдельной строке, указывая фамилию, инициалы и средние оценки по алгебре, геометрии и информатике. Данные располагать в алфавитном порядке фамилий и инициалов.

ExamTaskC74°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Класс> <Фамилия> <Инициалы> <Оценка> <Название предмета>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Для каждого учащегося определить количество оценок по каждому предмету (если по какому-либо предмету учащийся не получил ни одной оценки, то вывести для этого предмета число 0). Сведения о каждом учащемся выводить на отдельной строке, указывая класс, фамилию, инициалы и количество оценок по алгебре, геометрии и информатике. Данные располагать в порядке возрастания номера класса, а для одинаковых классов — в алфавитном порядке фамилий и инициалов.

ExamTaskC75°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Название предмета> <Фамилия> <Инициалы> <Класс> <Оценка>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Вывести сведения об учащихся, имеющих по алгебре среднюю оценку не более 4.0: фамилию, инициалы, номер класса и среднюю оценку по алгебре (выводится с двумя дробными знаками). Учащихся, не имеющих ни одной оценки по алгебре, не учитывать. Сведения о каждом учащемся выводить на отдельной строке и располагать в алфавитном порядке их фамилий и инициалов. Если ни один из учащихся не удовлетворяет указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC76°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Класс> <Фамилия> <Инициалы> <Название предмета> <Оценка>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Вывести сведения об учащихся, имеющих по информатике среднюю оценку не менее 4.0: номер класса, фамилию, инициалы и среднюю оценку по информатике (выводится с двумя дробными знаками). Сведения о каждом учащемся выводить на отдельной строке и располагать в порядке возрастания классов, а для одинаковых классов — в алфавитном порядке фамилий и инициалов. Если ни один из учащихся не удовлетворяет указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC77°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается название одного из предметов S и (через пробел) общее число оценок N. Каждая из последующих N строк содержит информацию об одной из оценок в формате

<Фамилия> <Инициалы> <Название предмета> <Оценка> <Класс>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Для каждого класса, присутствующего в наборе исходных данных, определить число учащихся, имеющих по предмету S среднюю оценку не более 3.5. Учащихся, не имеющих ни одной оценки по данному предмету, не учитывать. Сведения о каждом классе выводить на отдельной строке, указывая число найденных учащихся (число может быть равно 0) и номер класса. Данные упорядочивать по возрастанию числа учащихся, а для совпадающих чисел — по убыванию номера класса.

ExamTaskC78°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается название одного из предметов S и (через пробел) общее число оценок N. Каждая из последующих N строк содержит информацию об одной из оценок в формате

<Название предмета> <Фамилия> <Инициалы> <Оценка> <Класс>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Для каждого класса, присутствующего в наборе исходных данных, определить число учащихся, имеющих по предмету S среднюю оценку не менее 3.5 и при этом не получивших ни одной двойки по этому предмету. Сведения о каждом классе выводить на отдельной строке, указывая номер класса и число найденных учащихся (число может быть равно 0). Данные упорядочивать по возрастанию номера класса.

ExamTaskC79°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Класс> <Название предмета> <Фамилия> <Инициалы> <Оценка>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Найти всех двоечников — учащихся, получивших хотя бы одну двойку по какому-либо предмету. Вывести сведения о каждом из двоечников: номер класса, фамилию, инициалы и полученное число двоек. Сведения о каждом двоечнике выводить на отдельной строке и располагать по убыванию классов, а для одинаковых классов — в алфавитном порядке фамилий и инициалов. Если в наборе исходных данных нет ни одной двойки, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC80°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Класс> <Оценка> <Фамилия> <Инициалы> <Название предмета>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Найти всех хорошистов — учащихся, не получивших ни одной двойки и тройки, но имеющих хотя бы одну четверку по какому-либо предмету. Вывести сведения о каждом хорошисте: полученное число четверок, фамилию, инициалы и номер класса. Сведения о каждом учащемся выводить на отдельной строке и располагать по возрастанию количества четверок, а при их равенстве — в алфавитном порядке фамилий и инициалов. Если в наборе исходных данных нет ни одного учащегося, удовлетворяющего указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC81°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Класс> <Фамилия> <Инициалы> <Название предмета> <Оценка>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Для каждого класса найти злостных двоечников — учащихся, получивших в данном классе максимальное суммарное число двоек по всем предметам (число не должно быть нулевым). Вывести сведения о каждом из злостных двоечников: фамилию, инициалы, номер класса и полученное число двоек. Сведения о каждом двоечнике выводить на отдельной строке и располагать в алфавитном порядке их фамилий и инициалов (сортировку по классам не проводить). Если в наборе исходных данных нет ни одной двойки, то вывести текст «Требуемые учащиеся не найдены».

ExamTaskC82°. На вход подаются сведения об оценках учащихся по трем предметам: алгебре, геометрии и информатике. В первой строке указывается общее число оценок N, каждая из последующих N строк содержит информацию об одной из оценок в формате

<Оценка> <Класс> <Фамилия> <Инициалы> <Название предмета>

Количество учащихся не превосходит 100, полных однофамильцев (с совпадающей фамилией и инициалами) среди учащихся нет. Класс описывается целым числом в диапазоне от 7 до 11, оценка — целым числом в диапазоне от 2 до 5. Название предмета указывается с заглавной буквы. Для каждого класса найти лучших учеников — учащихся, получивших в данном классе максимальное суммарное число пятерок по всем предметам (число не должно быть нулевым). При поиске лучших учеников (в частности, при определении максимального суммарного числа пятерок) не следует учитывать учащихся, получивших хотя бы одну двойку или тройку. Вывести сведения о каждом из лучших учеников: номер класса, фамилию, инициалы и полученное число пятерок. Сведения о каждом учащемся выводить на отдельной строке и располагать по возрастанию классов, а для одинаковых классов — в алфавитном порядке фамилий и инициалов. Если в наборе исходных данных нет ни одного учащегося, удовлетворяющего указанным условиям, то вывести текст «Требуемые учащиеся не найдены».

Обработка текстовых данных

ExamTaskC83°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200. Найти и вывести сумму цифр, входящих в исходный набор. Если набор не содержит цифр, то вывести строку «NO».

ExamTaskC84°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200. Найти сумму чисел, входящих в исходный набор (число образуют подряд идущие цифры; известно, что сумма чисел не превосходит 20000). Если исходный набор не содержит цифр, то вывести число −1.

ExamTaskC85°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200. Подряд идущие в наборе цифры образуют одно число; известно, что все числа имеют не более 4 разрядов (незначащие нули при подсчете количества разрядов не учитываются). Найти общую сумму всех однозначных и двузначных чисел и общее количество всех трехзначных и четырехзначных чисел. Вывести два полученных числа в одной строке в указанном порядке, разделяя их одним пробелом. Если набор не содержит чисел с требуемым количеством разрядов, то в качестве соответствующего числа вывести 0.

ExamTaskC86°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200. Составить из имеющихся в наборе нечетных цифр минимальное число и вывести строковое представление этого числа. Каждая цифра должна использоваться столько раз, сколько раз она встречается в исходном наборе. Если в наборе нет нечетных цифр, то вывести строку «NO».

ExamTaskC87°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200. Составить из имеющихся в наборе четных цифр максимальное число и вывести строковое представление этого числа. Каждая цифра должна использоваться столько раз, сколько раз она встречается в исходном наборе (за исключением ситуации, когда отсутствуют все четные цифры, кроме цифры 0; в этом случае надо вывести строку «0»). Если в наборе нет четных цифр, то вывести строку «NO».

ExamTaskC88°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200; в наборе обязательно присутствуют цифры. Составить из имеющихся цифр максимальное число, которое читается одинаково как слева направо, так и справа налево. Все цифры можно не использовать; незначащих нулей в числе не должно быть. Вывести строку, изображающую найденное число.

ExamTaskC89°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200. Составить из имеющихся в тексте нечетных цифр число максимальной длины, которое читается одинаково как слева направо, так и справа налево. Все цифры можно не использовать. Если требуемое число составить нельзя, то вывести строку «NO»; если можно, то в первой строке вывести строку «YES», а во второй — строку, изображающую найденное число. Если таких чисел несколько, то вывести минимальное из них.

ExamTaskC90°. На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200. Составить из имеющихся в тексте четных цифр максимальное число, которое читается одинаково как слева направо, так и справа налево. Все цифры можно не использовать; незначащих нулей в числе не должно быть. Если требуемое число составить нельзя, то вывести строку «NO»; если можно, то в первой строке вывести строку «YES», а во второй — строку, изображающую найденное число.

ExamTaskC91°. На вход в первой строке подается целое положительное число N, затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Зашифровать исходный текст и вывести его зашифрованный вариант. Шифрование заключается в замене каждой латинской буквы на букву, симметричную шифруемой букве относительно середины английского алфавита (например, «a» должна заменяться на «z», «b» на «y», «x» на «c»). Регистр букв при шифровании остается прежним. Если символ не является латинской буквой, то он не изменяется.

ExamTaskC92°. На вход в первой строке подаются два целых положительных числа: K и N, причем K не превосходит 25. Затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Зашифровать исходный текст и вывести его зашифрованный вариант. Шифрование заключается в замене каждой латинской буквы на букву, расположенную в алфавите на K-й позиции после шифруемой буквы (алфавит считается циклическим: за буквой «z» опять следует буква «a»). Регистр букв при шифровании остается прежним. Если символ не является латинской буквой, то он не изменяется.

ExamTaskC93°. На вход в первой строке подается символ C — латинская буква, во второй строке — целое положительное число N. Затем следует зашифрованный текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Известно, что шифрование выполнялось по тем же правилам, что и в задании ExamTaskC92, причем первый зашифрованный символ текста должен после расшифровки стать символом С. Расшифровать исходный текст и вывести его расшифрованный вариант. Первый зашифрованный символ не обязательно является первым символом текста (поскольку в начале текста может располагаться цифра или знак препинания), однако можно считать, что он всегда присутствует в первой строке текста.

ExamTaskC94°. На вход в первой строке подается целое положительное число N, затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Зашифровать исходный текст и вывести его зашифрованный вариант. Шифрование заключается в следующем: каждая латинская буква в слове из L букв заменяется на букву, расположенную в алфавите на L-й позиции после шифруемой буквы (алфавит считается циклическим: за буквой «z» опять следует буква «a»). Например, текст «A gray box.» должен быть заменен на «B kvec era.». Регистр букв при шифровании остается прежним. Словом считается последовательность латинских букв, не содержащая пробелов и знаков препинания. Если символ не является латинской буквой, то он не изменяется.

ExamTaskC95°. На вход в первой строке подаются два целых положительных числа: K и N, причем K не превосходит 10. Затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Зашифровать исходный текст и вывести его зашифрованный вариант. Шифрование заключается в следующем: каждая латинская буква в слове из L букв заменяется на букву, расположенную в алфавите на (K + L)-й позиции после шифруемой буквы (алфавит считается циклическим: за буквой «z» опять следует буква «a»). Например, текст «A gray box.» при K = 1 должен быть заменен на «C lwfd fsb.». Регистр букв при шифровании остается прежним. Словом считается последовательность латинских букв, не содержащая пробелов и знаков препинания. Если символ не является латинской буквой, то он не изменяется.

ExamTaskC96°. На вход в первой строке подается символ C — латинская буква, во второй строке — целое положительное число N. Затем следует зашифрованный текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Известно, что шифрование выполнялось по тем же правилам, что и в задании ExamTaskC95, причем первый зашифрованный символ текста должен после расшифровки стать символом С. Расшифровать исходный текст и вывести его расшифрованный вариант. Первый зашифрованный символ не обязательно является первым символом текста (поскольку в начале текста может располагаться цифра или знак препинания), однако можно считать, что он всегда присутствует в первой строке текста.

ExamTaskC97°. На вход в первой строке подается целое положительное число N, затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Вывести все символы, встретившиеся в исходном тексте, включая пробел и знаки препинания (без повторений). Символы выводить в одной строке (без разделителей) в порядке их первого появления в тексте.

ExamTaskC98°. На вход в первой строке подается целое положительное число N, затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Вывести все символы, встретившиеся в исходном тексте, включая пробел и знаки препинания (без повторений). Символы выводить в одной строке (без разделителей) в порядке возрастания их кодов.

ExamTaskC99°. На вход в первой строке подается целое положительное число N, затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов. Вывести последовательность строчных латинских букв (a, b, c, …, z) из исходного текста и число их повторений в этом тексте. Вывод производится в алфавитном порядке, каждая буква выводится на новой строке, после буквы указывается пробел и число ее повторений в тексте. Буквы, отсутствующие в тексте, не выводить.

ExamTaskC100°. На вход в первой строке подается целое положительное число N, затем следует текст на английском языке, состоящий из N строк. В каждой строке текста содержится не более 80 символов; в тексте встречается не менее 10 различных строчных латинских букв. Найти 10 строчных латинских букв, повторяющихся в тексте чаще всего. Для каждой буквы вывести число ее повторений в тексте, и, через пробел, саму эту букву. Сведения о каждой букве выводятся на отдельной строке и располагаются в порядке убывания числа повторений букв в тексте, а при одинаковом числе повторений — в алфавитном порядке букв. Если имеются другие буквы, число повторений которых равно числу повторений последней из 10 найденных букв, то сведения о них тоже следует вывести.

Комбинации элементов последовательности

Эффективные алгоритмы решения задач из данной подгруппы не требуют использования массивов (списков), за исключением последней задачи, в которой достаточно использовать массив из 5 элементов.

ExamTaskC101°. Дано целое число N (> 1) и набор A из N целых положительных чисел; каждое число вводится с новой строки и не превосходит 1000. Найти и вывести минимальную сумму двух элементов из набора A.

Указание. Используйте алгоритм, при котором во вспомогательной переменной min хранится минимальное значение из ранее прочитанных элементов, а для текущего прочитанного элемента a вычисляется сумма min + a, которая сравнивается с переменной smin, содержащей минимальную из ранее найденных сумм элементов. Данный алгоритм, с необходимыми модификациями, будет использоваться во многих последующих заданиях, связанных с перебором комбинаций элементов.

ExamTaskC102°. Дано целое число N (> 2) и набор A из N ненулевых целых чисел; каждое число вводится с новой строки, его модуль не превосходит 1000. Найти и вывести максимальное произведение двух элементов из набора A.

ExamTaskC103°. Дано целое число N (> 2) и набор A из N различных целых чисел; каждое число вводится с новой строки, его модуль не превосходит 1000. Найти и вывести максимальную четную сумму двух элементов из набора A, а также номера слагаемых этой суммы в порядке возрастания (элементы нумеруются от 1; предполагается, что в наборе A есть единственная пара элементов, удовлетворяющая условию задачи). Каждое число выводить на новой строке.

ExamTaskC104°. Дано целое число N (> 1) и набор A из N положительных целых чисел; каждое число вводится с новой строки и не превосходит 1000. Найти и вывести минимальное нечетное произведение двух элементов из набора A. Если нечетных произведений не существует, то вывести 0.

ExamTaskC105°. Дан набор целых положительных чисел, содержащий не менее 5 элементов. Каждое число вводится с новой строки, после ввода всех чисел набора вводится число 0. Вывести сумму 5 последних элементов набора (завершающее число 0 в набор не входит).

Указание. Достаточно использовать вспомогательный массив a размера 5, в котором хранятся 5 последних прочитанных чисел. После чтения очередного числа b «самый старый» элемент массива a заменяется на число b. После чтения всех чисел массив a будет содержать 5 последних элементов исходного набора, поэтому останется найти сумму всех элементов массива a. Удобно индексировать массив a от 0; в этом случае индекс самого старого элемента на i-м шаге алгоритма (i = 0, 1, …) будет равен i mod 5, где mod обозначает операцию взятия остатка от деления.

Элементы с заданной разностью индексов

В эффективных алгоритмах решения задач из данной подгруппы не требуется одновременно хранить все элементы исходной последовательности в массиве (списке). Достаточно использовать вспомогательный массив, размер которого равен заданной разности индексов.

ExamTaskC106°. Дано целое число N (> 5) и N целых положительных чисел A1, …, AN; каждое число вводится с новой строки и не превосходит 1000. Вывести суммы всех пар элементов набора A, индексы которых различаются на величину 5: A1 + A6, A2 + A7, …, AN−5 + AN (в указанном порядке). Каждую сумму выводить на новой строке.

Указание. Достаточно использовать вспомогательный массив a размера 5, в котором хранятся 5 последних прочитанных чисел. После чтения очередного числа b выводится сумма этого числа и «самого старого» элемента из массива a, после чего самый старый элемент массива a заменяется на число b. По поводу индексации массива a см. указание к ExamTaskC105. Данный алгоритм, с необходимыми модификациями, будет использоваться во многих последующих заданиях на анализ комбинаций элементов с заданной разностью индексов.

ExamTaskC107°. Даны целые числа M (1 < M < 10), N (> M) и N целых положительных чисел A1, …, AN; каждое число вводится с новой строки и не превосходит 1000. Вывести произведения всех пар элементов набора A, индексы которых различаются на величину M: A1·A1+M, A2·A2+M, …, ANM·AN (в указанном порядке). Каждое произведение выводить на новой строке.

ExamTaskC108°. Дано целое число N (> 4) и N целых положительных чисел A1, …, AN; каждое число вводится с новой строки и не превосходит 1000. Найти и вывести максимальное произведение двух элементов из набора A, разность индексов которых больше или равна 4.

Указание. См. указания к ExamTaskC101 и ExamTaskC106.

ExamTaskC109°. Даны целые числа M (1 < M < 10), N (> M) и N различных целых чисел A1, …, AN; каждое число вводится с новой строки, его модуль не превосходит 1000. Найти и вывести минимальную сумму двух элементов из набора A, разность индексов которых больше или равна M. Вывести также номера слагаемых полученной суммы в порядке их возрастания (элементы нумеруются от 1; предполагается, что в наборе A есть единственная пара элементов, удовлетворяющая условию задачи). Каждое число выводить на новой строке.

ExamTaskC110°. Дано целое число N (> 6) и N ненулевых целых чисел A1, …, AN; каждое число вводится с новой строки, его модуль не превосходит 1000. Найти и вывести максимальное произведение двух элементов из набора A, разность индексов которых больше или равна 3.

ExamTaskC111°. Даны целые числа M (1 < M < 10), N (> M) и N различных целых чисел A1, …, AN; каждое число вводится с новой строки, его модуль не превосходит 1000. Найти и вывести минимальную четную сумму двух элементов из набора A, разность индексов которых больше или равна M. Вывести также номера слагаемых полученной суммы в порядке их возрастания (элементы нумеруются от 1; предполагается, что в наборе A есть единственная пара элементов, удовлетворяющая условию задачи). Каждое число выводить на новой строке.

ExamTaskC112°. Даны целые числа M (1 < M < 10), N (> M) и N положительных целых чисел A1, …, AN; каждое число вводится с новой строки и не превосходит 1000. Найти и вывести максимальное нечетное произведение двух элементов из набора A, разность индексов которых больше или равна M. Если нечетных произведений не существует, то вывести текст «NO».

Делимость произведения элементов

ExamTaskC113°. Дано целое число N (> 1) и набор A из N положительных целых чисел, не превышающих 1000. Кроме того, дано целое число R. Каждое исходное число вводится с новой строки. Контрольным значением набора A называется наибольшее из произведений двух его различных элементов, которое делится на 7, но не делится на 49. Если требуемые произведения в наборе A отсутствуют, то его контрольное значение полагается равным 0. Вычислить контрольное значение набора A и проверить, совпадает ли оно с числом R. Вывести в первой строке вычисленное контрольное значение, а во второй — текст «Контроль пройден», если это значение равно R, и текст «Контроль не пройден» в противном случае. Массивы в программе не использовать.

ExamTaskC114°. Дано целое число N (> 1) и набор A из N положительных целых чисел, не превышающих 1000. Кроме того, дано целое число R. Каждое исходное число вводится с новой строки. Контрольным значением набора A называется наибольшее из произведений двух его различных элементов, которое делится на 17 (слово «различные» означает, что квадраты элементов набора A не рассматриваются, однако произведения разных элементов, равных по величине, допускаются). Если требуемые произведения в наборе A отсутствуют, то его контрольное значение полагается равным 0. Вычислить контрольное значение набора A и проверить, совпадает ли оно с числом R. Вывести в первой строке вычисленное контрольное значение, а во второй — текст «Контроль пройден», если это значение равно R, и текст «Контроль не пройден» в противном случае. Массивы в программе не использовать.

ExamTaskC115°. Дано целое число N (> 1) и набор A из N положительных целых чисел, не превышающих 1000. Кроме того, дано целое число R. Каждое исходное число вводится с новой строки. Контрольным значением набора A называется наибольшее из произведений двух его различных элементов, которое делится на 21 (слово «различные» означает, что квадраты элементов набора A не рассматриваются, однако произведения разных элементов, равных по величине, допускаются). Если требуемые произведения в наборе A отсутствуют, то его контрольное значение полагается равным 0. Вычислить контрольное значение набора A и проверить, совпадает ли оно с числом R. Вывести в первой строке вычисленное контрольное значение, а во второй — текст «Контроль пройден», если это значение равно R, и текст «Контроль не пройден» в противном случае. Массивы в программе не использовать.

ExamTaskC116°. Дано целое число N (> 1) и набор A из N положительных целых чисел, не превышающих 1000. Кроме того, дано целое число R. Каждое исходное число вводится с новой строки. Контрольным значением набора A называется наибольшее из произведений двух его различных элементов, которое не делится на 21 (слово «различные» означает, что квадраты элементов набора A не рассматриваются, однако произведения разных элементов, равных по величине, допускаются). Если требуемые произведения в наборе A отсутствуют, то его контрольное значение полагается равным 0. Вычислить контрольное значение набора A и проверить, совпадает ли оно с числом R. Вывести в первой строке вычисленное контрольное значение, а во второй — текст «Контроль пройден», если это значение равно R, и текст «Контроль не пройден» в противном случае. Массивы в программе не использовать.

Нахождение основного подмножества

ExamTaskC117°. Дано целое число N (> 2) и набор A из N различных целых неотрицательных чисел (каждое число вводится с новой строки). Основным подмножеством набора A называется непустое подмножество этого набора с максимальной четной суммой элементов. Если имеется несколько подмножеств с максимальной четной суммой, то основным считается подмножество, которое содержит наибольшее количество элементов. Вывести в возрастающем порядке номера элементов набора A, входящих в его основное подмножество (нумерация начинается от 1). Каждый номер выводить на новой строке. Массивы в программе не использовать.

ExamTaskC118°. Дано целое положительное число N и набор A из N различных целых неотрицательных чисел (каждое число вводится с новой строки). Среди чисел набора A имеется хотя бы одно нечетное. Основным подмножеством набора A называется непустое подмножество этого набора с максимальной нечетной суммой элементов. Если имеется несколько подмножеств с максимальной нечетной суммой, то основным считается подмножество, которое содержит наименьшее количество элементов. Вывести в возрастающем порядке номера элементов набора A, входящих в его основное подмножество (нумерация начинается от 1). Каждый номер выводить на новой строке. Массивы в программе не использовать.

ExamTaskC119°. Дано целое число N (> 2) и набор A из N различных целых чисел (каждое число вводится с новой строки). Основным подмножеством набора A называется непустое подмножество этого набора с максимальным произведением элементов. При нахождении произведения учитывается знак числа. Если имеется несколько подмножеств с максимальным произведением, то основным считается подмножество, которое содержит наибольшее количество элементов. Вывести в возрастающем порядке номера элементов набора A, входящих в его основное подмножество (нумерация начинается от 1). Каждый номер выводить на новой строке. Массивы в программе не использовать.

ExamTaskC120°. Дано целое положительное число N и набор A из N различных целых чисел (каждое число вводится с новой строки). Среди чисел набора A имеется хотя бы одно отрицательное. Основным подмножеством набора A называется непустое подмножество этого набора с минимальным произведением элементов. При нахождении произведения учитывается знак числа. Если имеется несколько подмножеств с минимальным произведением, то основным считается подмножество, которое содержит наименьшее количество элементов. Вывести в возрастающем порядке номера элементов набора A, входящих в его основное подмножество (нумерация начинается от 1). Каждый номер выводить на новой строке. Массивы в программе не использовать.

Подъемы и спуски

ExamTaskC121°. Дан непустой набор A положительных целых чисел A1, A2, … . Каждое число вводится с новой строки, признаком конца набора является ввод числа 0, которое в набор не включается. Последовательность элементов от AK до AK+M (M > 0) называется подъемом, если каждое следующее число в этой последовательности больше предыдущего; высотой этого подъема называется число AK+M − AK. Найти и вывести наибольшую высоту среди всех подъемов исходного набора. Если набор A не содержит ни одного подъема, то вывести текст «NO».

ExamTaskC122°. Дан непустой набор A положительных целых чисел A1, A2, … . Каждое число вводится с новой строки, признаком конца набора является ввод числа 0, которое в набор не включается. Последовательность элементов от AK до AK+M (M > 0) называется спуском, если каждое следующее число в этой последовательности не превосходит предыдущее (т. е. меньше или равно предыдущему); глубиной этого спуска называется число AK − AK+M. Найти и вывести наибольшую глубину среди всех спусков исходного набора. Если набор A не содержит ни одного спуска, то вывести текст «NO».

ExamTaskC123°. Дан непустой набор A положительных целых чисел A1, A2, … . Каждое число вводится с новой строки, признаком конца набора является ввод числа 0, которое в набор не включается. Последовательность элементов от AK до AK+M (M > 0) называется подъемом, если каждое следующее число в этой последовательности больше предыдущего и эту последовательность нельзя увеличить (т. е. AK является первым элементом набора или AK−1 ≥ AK, а AK+M является последним элементом набора или AK+M ≥ AK+M+1); высотой этого подъема называется число AK+M − AK. Подъем называется значительным, если его высота больше величины минимального элемента этого подъема. Найти и вывести значение высоты для каждого значительного подъема в исходном наборе, а также количество значительных подъемов (это количество может быть равно 0). Каждое число выводить на новой строке.

ExamTaskC124°. Дан непустой набор A положительных целых чисел A1, A2, … . Каждое число вводится с новой строки, признаком конца набора является ввод числа 0, которое в набор не включается. Последовательность элементов от AK до AK+M (M > 0) называется спуском, если каждое следующее число в этой последовательности не превосходит предыдущее (т. е. меньше или равно предыдущему) и эту последовательность нельзя увеличить (т. е. AK является первым элементом набора или AK−1 < AK, а AK+M является последним элементом набора или AK+M < AK+M+1); глубиной этого спуска называется число AK − AK+M. Спуск называется значительным, если его глубина больше величины минимального элемента этого спуска. Найти и вывести значение глубины для каждого значительного спуска в исходном наборе, а также количество значительных спусков (это количество может быть равно 0). Каждое число выводить на новой строке.

Наборы точек на плоскости

ExamTaskC125°. Дано целое число N (> 0) и набор из N различных точек с целочисленными координатами (в первой строке вводится число N, в каждой из последующих N строк вводятся два целых числа, разделенные пробелом: координаты X и Y очередной точки). Ни одна из точек не лежит на координатной оси, значения координат не превосходят по модулю 1000. Найти номер K координатной четверти, в которой содержится больше всего точек из данного набора, и точку в этой четверти, наименее удаленную от оси OX. Если имеется несколько координатных четвертей с максимальным количеством точек, то выбирается четверть с наибольшим номером; если в этой четверти имеется несколько точек, наименее удаленных от оси OX, то выбирается та из этих точек, которая наиболее удалена от оси OY. Вывести найденный номер K и координаты найденной точки (каждое число выводить на новой строке).

ExamTaskC126°. Дано целое число N (> 2) и набор из N точек с целочисленными координатами (в первой строке вводится число N, в каждой из последующих N строк вводятся два целых числа, разделенные пробелом: координаты X и Y очередной точки). Значения координат не превосходят по модулю 1000. Среди всех треугольников с вершинами в данных точках, у которых одна из сторон лежит на оси ОY, найти треугольник с наибольшей площадью и вывести эту площадь как вещественное число с одним дробным знаком. Если требуемых треугольников не существует, то вывести текст «NO».

ExamTaskC127°. Дано целое число N (> 2) и набор из N точек с целочисленными координатами (в первой строке вводится число N, в каждой из последующих N строк вводятся два целых числа, разделенные пробелом: координаты X и Y очередной точки). Значения координат не превосходят по модулю 1000. Среди всех четырехугольников с вершинами в данных точках, у которых две вершины лежат на оси OX, а две оставшиеся — по разные стороны от оси OX, найти четырехугольник с наибольшей площадью и вывести эту площадь как вещественное число с одним дробным знаком. Если требуемых четырехугольников не существует, то вывести текст «NO».

ExamTaskC128°. Дано целое число N (> 2) и набор из N точек с целочисленными координатами (в первой строке вводится число N, в каждой из последующих N строк вводятся два целых числа, разделенные пробелом: координаты X и Y очередной точки). Значения координат не превосходят по модулю 1000. Среди всех треугольников с вершинами в данных точках, у которых одна из сторон лежит на оси OX и ни одна из точек треугольника не лежит на оси OY, найти треугольник с наибольшей площадью и вывести эту площадь как вещественное число с одним дробным знаком. Если требуемых треугольников не существует, то вывести текст «NO».

Определение призеров

ExamTaskC129°. Дан набор целых чисел в диапазоне от 1 до 100, содержащий значения баллов, набранных участниками олимпиады (предполагается, что любой участник набрал хотя бы 1 балл). Признаком завершения набора является число 0, каждое число вводится с новой строки. Призерами олимпиады считаются 35% участников, показавших лучшие результаты (при вычислении количества участников, составляющих 35%, используется формула (N · 35)/100, где N — общее число участников, а знак «/» обозначает операцию деления нацело). Однако если некоторые участники, не попавшие в 35% лучших, набрали такое же количество баллов К, как и последние по результатам из тех, кто попал в 35% лучших, то все участники, набравшие К баллов, включаются в число призеров. Найти и вывести минимальный балл из имеющихся в исходном наборе, который позволит участнику стать призером олимпиады.

ExamTaskC130°. Дан набор целых чисел в диапазоне от 1 до 200, содержащий значения баллов, набранных участниками олимпиады (предполагается, что любой участник набрал хотя бы 1 балл). Признаком завершения набора является число 0, каждое число вводится с новой строки. Призерами олимпиады считаются 25% участников, показавших лучшие результаты (при вычислении количества участников, составляющих 25%, используется формула (N · 25)/100, где N — общее число участников, а знак «/» обозначает операцию деления нацело). Однако если некоторые участники, не попавшие в 25% лучших, набрали такое же количество баллов К, как и последние по результатам из тех, кто попал в 25% лучших, то в случае, если K > 100, все участники, набравшие К баллов, включаются в число призеров, в противном случае все участники, набравшие К баллов, из числа призеров исключаются. Найти и вывести минимальный балл из имеющихся в исходном наборе, который позволит участнику стать призером олимпиады. Если по описанным правилам нельзя определить ни одного призера, то вывести текст «NO».

Использование рекуррентных соотношений

Задачи из данной подгруппы решаются по следующей общей схеме. Предположим, что в задаче требуется определить некоторую характеристику, связанную с числом N или с набором из N элементов. Обозначим эту характеристику через F(N). Если удастся получить рекуррентное соотношение, позволяющее выразить значение F(N) через одно или несколько предыдущих значений F (F(N − 1), F(N − 2), …), и если, кроме того, можно легко найти соответствующее количество начальных значений F (F(1), F(2), …), то для решения задачи будет достаточно реализовать последовательное вычисление значений F(K) для K = 1, 2, …, N по найденной рекуррентной формуле. При этом во многих случаях можно обойтись без использования вспомогательного массива для хранения найденных значений F.

ExamTaskC131°. Дано целое число N — количество ступенек лестницы (2 < N < 20). Найти и вывести количество различных способов подняться на верхнюю ступеньку лестницы (ступеньку номер N), если за один шаг можно подняться либо на одну, либо на две ступеньки. Например, при N = 3 число способов равно трем (1 способ — последовательно подняться на первую, вторую и третью ступеньки; 2 способ — сразу подняться на вторую, а затем на третью; 3 способ — подняться на первую, а затем сразу на третью).

ExamTaskC132°. Даны целые числа N и K (2 < N < 20, 1 < K < N), каждое число вводится с новой строки. Число N равно количеству ступенек лестницы. Найти и вывести количество различных способов подняться на верхнюю ступеньку лестницы (ступеньку номер N), если за один шаг можно подняться на одну, две, …, K ступенек. Например, при N = 3 и K = 2 число способов равно трем (1 способ — последовательно подняться на первую, вторую и третью ступеньки; 2 способ — сразу подняться на вторую, а затем на третью; 3 способ — подняться на первую, а затем сразу на третью).

ExamTaskC133°. В сообщении, состоящем из заглавных русских букв и пробелов, каждую букву закодировали ее порядковым номером в русском алфавите («А» — 1, «Б» — 2, …, «Я» — 33), а пробел — нулем. Дано целое положительное число N и набор из N цифр (каждый элемент данных вводится с новой строки). Найти и вывести количество различных сообщений, из которых могла получиться данная последовательность цифр. Известно, что это количество не превосходит 109. Например, для набора из 4 цифр 1, 2, 6, 9 количество различных сообщений равно 3 (с кодами 1−2−6−9, 1−26−9, 12−6−9).

ExamTaskC134°. В сообщении, содержащем не более 250 различных иероглифов (иероглифы могут повторяться), каждый иероглиф закодировали некоторым номером (от 0 до 249). Дано целое положительное число N и набор из N цифр (каждый элемент данных вводится с новой строки). Найти и вывести количество различных сообщений, из которых могла получиться данная последовательность цифр. Известно, что это количество не превосходит 109. Например, для набора из 4 цифр 1, 2, 6, 9 количество различных сообщений равно 6 (с кодами 1−2−6−9, 1−2−69, 1−26−9, 12−6−9, 12−69, 126−9).

ExamTaskC135°. Дано натуральное число N (< 30) и массив A из N целых чисел (каждый элемент данных вводится с новой строки). Подпоследовательностью массива A называется любой набор элементов из A, расположенных в том же порядке, что и в исходном массиве. Найти и вывести количество элементов в самой длинной возрастающей подпоследовательности массива A (набор данных называется возрастающим, если каждый следующий его элемент больше предыдущего; одноэлементный набор также считается возрастающим). Наряду с исходным массивом при решении допускается использовать вспомогательный массив того же размера.

ExamTaskC136°. Дано натуральное число N (< 30) и массив A из N положительных целых чисел (каждый элемент данных вводится с новой строки). Подпоследовательностью массива A называется любой набор элементов из A, расположенных в том же порядке, что и в исходном массиве. Для массива A найти убывающую подпоследовательность с максимальной суммой элементов и вывести эту максимальную сумму (набор данных называется убывающим, если каждый следующий его элемент меньше предыдущего; одноэлементный набор также считается убывающим). Наряду с исходным массивом при решении допускается использовать вспомогательный массив того же размера.

ExamTaskC137°. Дано натуральное число N (< 20) и двумерный массив A положительных целых чисел размера N × N. Число N вводится в первой строке, остальные N строк исходного набора данных содержат элементы двумерного массива (по строкам), разделенные ровно одним пробелом. Считается, что элемент AI,J находится в I-й строке и J-м столбце, I и J меняются от 1 до N. Найти такой путь от элемента A1,1 до элемента AN,N, чтобы сумма элементов, входящих в этот путь, была максимальной, и вывести найденную максимальную сумму. При построении пути разрешается перемещаться только вниз или вправо (т. е. от элемента AI,J можно переходить только к элементам AI+1,J или AI,J+1, если они существуют). Наряду с исходным двумерным массивом при решении допускается использовать вспомогательный двумерный массив того же размера.

ExamTaskC138°. Дано натуральное число N (< 20) и двумерный массив A целых чисел размера N × N. Число N вводится в первой строке, остальные N строк исходного набора данных содержат элементы двумерного массива (по строкам), разделенные ровно одним пробелом. Считается, что элемент AI,J находится в I-й строке и J-м столбце, I и J меняются от 1 до N. Найти такой путь от элемента A1,1 до элемента AN,N, чтобы сумма элементов, входящих в этот путь, была минимальной. При построении пути разрешается перемещаться только вниз, вправо или по диагонали вправо и вниз (т. е. от элемента AI,J можно переходить только к элементам AI+1,J, AI,J+1 или AI+1,J+1, если они существуют). Вывести найденную минимальную сумму, а также элементы найденного пути в обратном порядке: от AN,N до A1,1 (каждое число выводить на новой строке). Предполагается, что существует единственный путь от A1,1 до AN,N с минимальной суммой элементов. Наряду с исходным двумерным массивом при решении допускается использовать вспомогательный двумерный массив того же размера.

ExamTaskC139°. Трасса состоит из двух основных дорог (A и B) и нескольких переездов, позволяющих перейти с одной дороги на другую; время прохождения всех переездов одинаково. На всех участках, включая переезды, движение разрешено только в одну сторону; переезд возможен только с дороги A на дорогу B. В первой строке исходных данных задаётся количество участков трассы N. Во второй строке задаётся целое число T — время (в минутах) прохождения каждого из переездов (A0B0, A1B1, …, ANBN). В каждой из последующих N строк вводятся через пробел два целых числа, задающих время (в минутах) прохождения очередного участка на каждой из дорог (в первой из этих строк указывается время прохождения участков A0A1 и B0B1, во второй — A1A2 и B1B2 и т. д.). Найти и вывести минимальное время (в минутах), за которое водитель сможет проехать из A0 в BN. Массивы в программе не использовать.

ExamTaskC140°. Перед поездкой по трассе автомобиль может быть оснащен двумя разными типами колес: A и B. Вдоль трассы расположены станции, на которых можно выполнить замену колес A на B, эта операция занимает T минут. Замена колес B на A невозможна; на старт можно выйти с любым комплектом колес. В первой строке исходных данных задается количество участков трассы N. Во второй строке задается целое число T — время на замену колес A на B. В каждой из последующих N строк вводятся через пробел два целых числа, задающих время (в минутах) прохождения очередного участка с каждым из комплектов колес (первое число — для комплекта A, второе — для комплекта B). В первой из этих строк указывается время прохождения участка от старта до первой станции, во второй — от первой станции до второй и т. д. Найти и вывести минимальное время (в минутах), за которое можно пройти всю трассу. Массивы в программе не использовать.

Выбор чисел из набора пар

ExamTaskC141°. Дан набор из 5 пар положительных целых чисел (каждая пара чисел вводится с новой строки, числа в паре разделяются ровно одним пробелом). Числа в парах не превосходят 1000. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 4 и при этом была максимально возможной. Требуется вывести найденную сумму. Если получить сумму с указанными свойствами нельзя, то в качестве ответа нужно вывести 0. При решении задачи допускается использовать полный перебор вариантов.

ExamTaskC142°. Дано натуральное число N (< 100) и набор из N пар положительных целых чисел (в первой строке вводится количество пар N, в последующих строках вводятся пары чисел, причем каждая пара вводится с новой строки, а числа в паре разделяются ровно одним пробелом). Числа в парах не превосходят 1000. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на 4 и при этом была максимально возможной. Требуется вывести найденную сумму. Если получить сумму с указанными свойствами нельзя, то в качестве ответа нужно вывести 0. При решении задачи не следует использовать полный перебор вариантов.

ExamTaskC143°. Дано целое число M (2 < M < 9), натуральное число N (< 100) и набор из N пар положительных целых чисел (в первой строке вводится число M, во второй — количество пар N, в последующих строках вводятся пары чисел, причем каждая пара вводится с новой строки, а числа в паре разделяются ровно одним пробелом). Числа в парах не превосходят 1000. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел не делилась на M и при этом была минимально возможной. Требуется вывести найденную сумму. Если получить сумму с указанными свойствами нельзя, то в качестве ответа нужно вывести 0. При решении задачи не следует использовать полный перебор вариантов.

ExamTaskC144°. Дано натуральное число N (< 100) и набор из N пар положительных целых чисел (в первой строке вводится количество пар N, в последующих строках вводятся пары чисел, причем каждая пара вводится с новой строки, а числа в паре разделяются ровно одним пробелом). Числа в парах не превосходят 1000. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел делилась на 3 и при этом была максимально возможной. Требуется вывести найденную сумму. Если получить сумму с указанными свойствами нельзя, то в качестве ответа нужно вывести 0. При решении задачи не следует использовать полный перебор вариантов.

ExamTaskC145°. Дано натуральное число N (< 100) и набор из N пар положительных целых чисел (в первой строке вводится количество пар N, в последующих строках вводятся пары чисел, причем каждая пара вводится с новой строки, а числа в паре разделяются ровно одним пробелом). Числа в парах не превосходят 1000. Необходимо выбрать из каждой пары ровно одно число так, чтобы сумма всех выбранных чисел делилась на 4 и при этом была минимально возможной. Требуется вывести найденную сумму. Если получить сумму с указанными свойствами нельзя, то в качестве ответа нужно вывести 0. При решении задачи не следует использовать полный перебор вариантов.

Нахождение количества пар элементов

ExamTaskC146°. Дано натуральное число N (< 100) и набор из N положительных целых чисел (в первой строке вводится количество чисел N, в последующих строках вводятся сами числа). Все числа различны и не превосходят 10000. Найти и вывести количество пар чисел, произведение которых делится на 19. Порядок чисел в паре не важен.

Указание. См. указание к ExamTaskC101.

ExamTaskC147°. Дано натуральное число N (< 100) и набор из N положительных целых чисел (в первой строке вводится количество чисел N, в последующих строках вводятся сами числа). Все числа различны и не превосходят 10000. Найти и вывести количество пар чисел, произведение которых делится на 26. Порядок чисел в паре не важен.

ExamTaskC148°. Дано натуральное число N (< 100) и набор A из N целых чисел, лежащих в диапазоне от −10000 до 10000 (в первой строке вводится количество чисел N, в последующих строках вводятся сами числа). Найти и вывести количество пар элементов набора A, у которых разность индексов больше или равна 5 и при этом произведение данных элементов делится на 7 и не делится на 49. Порядок элементов в паре не важен.

Указание. См. указание к ExamTaskC106.

ExamTaskC149°. Даны целые числа M (1 < M < 10), N (M < N < 100) и набор A из N целых чисел, лежащих в диапазоне от −10000 до 10000 (в первой строке вводится число M, во второй — число N, в последующих строках вводятся числа из набора A). Найти и вывести количество пар элементов набора A, у которых разность индексов больше или равна M и при этом произведение данных элементов делится на 17. Порядок элементов в паре не важен.

ExamTaskC150°. Даны целые числа M (1 < M < 10), N (M < N < 100) и набор A из N целых чисел, лежащих в диапазоне от −10000 до 10000 (в первой строке вводится число M, во второй — число N, в последующих строках вводятся числа из набора A). Найти и вывести количество пар элементов набора A, у которых разность индексов больше или равна M и при этом произведение данных элементов делится на 21. Порядок элементов в паре не важен.


PrevNext

 

Рейтинг@Mail.ru

Разработка сайта:
М. Э. Абрамян, В. Н. Брагилевский

Последнее обновление:
03.05.2021