Статья Автор: Лебедев Дмитрий

Разбор Статграда от 2024-12-17. Часть 6( 24, 26)

Задания 24
Текстовый файл состоит из цифр от 1 до 9, знаков операций «+», «–» и «*» и заглавных латинских букв A, B, C, D.
Назовём правильной суммой строку, содержащую последовательность из одного или более десятичных чисел, в которой между соседними числами стоит ровно один знак «+» и нет других знаков. Назовём результатом правильной суммы число, которое получится при выполнении записанных в соответствующей строке сложений.
Найдите в данной строке правильную сумму, расположенную непосредственно после буквы A и имеющую наибольший результат.
Задание нельзя назвать сложным. Оно легко раскладывается на несколько простых шагов:
  1. Считать строку
  2. Разбить строку по символу A
  3. Обработать каждый отрезок. Один из возможных путей
    1. Проверить первый символ
    2. Пробегать до тех пор, пока не встретим запрещенный знак/букву или ++
    3. Выделить найденную подстроку, разбить по знаку + и найти сумму
Возможен и другой путь (возможно реализация двух вариантов для проверки)
  1. Считать строку
  2. Заменить "лишние" знаки буквы  и '++' на служебный знак
  3. Разбить строку по 'A' и обработать каждый фрагмент
    1.  Разбить по служебному и взять первую подстроку
    2. Проверить первый и последний символ и подсчитать сумму
Реализуем оба варианта



Трудоемкость написания примерно одинакова, первый немного эффективнее.
Что использовать на экзамене? На этот вопрос ответить сложно, но знать и уметь применять надо каждый. 

Задание 26
Участники викторины письменно отвечают на 10 вопросов различной сложности. За правильный ответ начисляется от 1 до 5 баллов в зависимости от сложности вопроса. За неверный ответ вычитается от 1 до 5 баллов. Участник может не отвечать на какой-то вопрос, в таком случае баллы за этот вопрос не начисляются.  По результатам викторины для каждого участника вычисляются три показателя:
1) сумма – общее количество набранных баллов;
2) плюсы – сумма баллов без учёта неверных ответов;
3) ответы – общее количество сданных ответов (верных и неверных).
В таблице результатов участники располагаются
по убыванию первого показателя – суммы,
при равенстве сумм – по убыванию второго показателя (плюсов),
при равенстве сумм и плюсов – по убыванию третьего показателя (ответов).
При равенстве всех трёх показателей участники располагаются в итоговой таблице в порядке возрастания их личных номеров.
Дальнейший отбор проводится среди тех, кто набрал положительную сумму баллов, участники с нулевой и отрицательной суммой исключаются. В следующий тур проходят участники, занявшие места в первой трети полученной таблицы (учитываются только положительные результаты), а также те, у которых все три показателя такие же, как у занявшего последнее место в первой трети таблицы.
Право участия в дополнительном отборочном туре получают 10 % из тех, кто набрал положительную сумму, но не попал сразу в следующий тур, а также те, у которых все три показателя такие же, как у занявшего последнее место среди этих 10 %.
Определите ID участника, занимающего в таблице первое место среди тех, кто прошёл в дополнительный отборочный тур, а также общее количество участников дополнительного отборочного тура.
Входные данные
Первая строка входного файла содержит целое число N (N ≤ 10 000) – общее количество участников.
Каждая из следующих N строк соответствует одному участнику и содержит 11 целых чисел, разделённых пробелами:
сначала ID участника, затем – баллы, полученные им за каждый из 10 вопросов.
Задание имеет очень объёмное условие. Для реализации надо
  1. считать данные, вычислить значения от результатов (суммы, плюсы, ответы), отбросить "выбывших"
  2. отсортировать в нужном порядке
  3. найти ответы
Задание можно решить в табличном процессоре, но разберем программый способ. 
  1. Считаем данные в словарь. 
  2. Для каждого участника вычислим итоговые характеристики и определим участие в конкурсном отборе. Данные участвующих занесем в новый список в "удобном" порядке. 
  3. Отсортируем список
  4. Определим  ID первого в дополнительном отборе и количество участников дополнительного отбора  

 

Прикрепленные файлы
24_24-12.txt
26_24-12.txt
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать