Задача № C. Олимпиада по информатике
Задачи с лицейской олимпиады от 15.10.2012г. Задача А. Сортировка Выполнить сортировку символов в строке по возрастанию «весов» символов, заданных таблицей ORD. Символы, не попавшие в таблицу, выводятся в конце таблицы по мере появления в тексте. Ввод. В первой строке находится строка, задающая вес символов для сортировки (не более 200 символов), во второй строке – текст, который нужно отсортировать (не более 10000 сивмлов). Вывод Вывести отсортированный по правилам текст. Примеры
Заданы день и месяц рождения, а также текущие день, месяц и год в формате дд.мм.гггг. Определить, сколько дней осталось до дня рождения. Примечание. Високосный год делится на 400 или делится на 4, но не делится на 100. Ограничения: год от 1920 до 3000, месяц - от 1 до 12, день - от 1 до числа дней в месяце, время 1 с. Ввод. В первой строке находятся разделённые точками день и месяц рождения, во второй - разделённые точками текущие день, месяц и год. Вывод. Вывести число дней, оставшихся до дня рождения. Примеры
В математике часто встречаются так называемые рекуррентные соотношения. Обычно они применяются для задания числовых последовательностей - очередное число в последовательности некоторым образом выражается через предыдущие. Примером такой последовательности являются числа Фибоначчи (в них очередное число равно сумме двух предыдущих). С помощью соотношений такого типа можно задавать не только последовательности чисел, но и последовательности строк. В этой задаче рассматривается последовательность строк s0, s1,..., задаваемая следующим образом. Строка s0 пуста, а каждая строка si (i >= 1) получается из si-1 по следующему правилу: если десятичная запись числа i входит как подстрока в si-1, то si = si-1, иначе si получается приписыванием к si-1 в конец десятичной записи числа i. Задано число n. Необходимо найти строку sn.
Ввод. Содержит целое число n (1 <= n < 1000). Вывод. Выведите строку sn. Примеры
Задача D. Химические реакции Химическая реакция записана в виде уравнения, которое представлено строкой символов без пробелов, состоящей из одной или более химических последовательностей, разделённых знаком плюс. Каждая последовательность имеет необязательный предшествующий целый множитель, относящийся ко всей последовательности, и несколько элементов. Каждый элемент может сопровождаться необязательным целым множителем, относящимся к нему. Элемент в этом уравнении может быть или отдельным химическим элементом, или целой последовательностью в круглых скобках. Каждый отдельный химический элемент представлен или одной прописной буквой, или прописной буквой, сопровождаемой строчной. Ещё более формально, используя нотацию, аналогичную форме Бэкуса-Наура, можно написать: <формула>::= [<число>] <последовательность> {"+" [<число>] <последовательность>}
Будем говорить, что каждый отдельный химический элемент встречается в формуле всего X раз, если X - сумма всех различных вхождений этого химического элемента, умноженных на все числа, относящиеся к ним. Например, в формуле C2H5OH+3O2+3(SiO2)
Все множители в формулах - целые числа не меньше 2, если заданы явно, или равны 1 - по умолчанию.
Ввод. В первой строке находится химическая формула, записанная по вышеприведенным правилам.
Ограничения: каждый отдельный химический элемент встречается всего не более 10 000 раз, время 1 с.
Вывод. Вывести формулу химического элемента, полученного в результате химической реакции, в упрощенной форме, где указаны химические элементы, записанные в порядке их появления, и число повторений в формуле, кроме быть может единицы.
Примеры
Эти задачи из вариантов ЕГЭ, немного изменив условие. Задача № B. Увеличитель У исполнителя Увеличитель две команды, которым присвоены номера: Прибавь a, Умножь на b, где 1<=a<=10, 2<=b<=100. Первая из них увеличивает число на экране на a, вторая - умножает на b. Программа для Увеличителя - это последовательность команд, возможно пустая. Помогите написать программу, которая ответит на вопрос: сколько есть программ, которые число X преобразует в число Y? На вход подаются: в первой строке два числа через пробел: a и b; во второй строке - еще два числа через пробел: X и Y (X<=Y, 1<=X,Y<=10000). На выходе выводится одно число - количество программ. Пример
Задача № C. Олимпиада по информатике На городской олимпиаде по информатике участникам было предложено выполнить 3 задания, каждое из которых оценивалось по 25-балльной шкале. Известно, что общее количество участников первого тура олимпиады не превосходит 250 человек. Напишите программу, которая будет выводить на экран максимальный балл и фамилию и имя участника, набравшего это количество баллов. Если среди остальных участников есть ученики, набравшие такое же количество баллов, то их фамилии и имена также следует вывести. При этом имена и фамилии выводить в порядке их появления.
<Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов; <Баллы> – строка, содержащая три целых числа, разделенных пробелом, соответствующих баллам, полученным участником за каждое задание первого тура. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. На вход подаются сведения о результатах олимпиады. В первой строке вводится количество участников N. Далее следуют N строк, имеющих следующий формат: <Фамилия> <Имя> <Баллы> На выходе в первой строчке вывести максимальный балл, а в следующих строчках Фамилию Имя участников, набравших его. Пример
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|