Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Задача № C. Олимпиада по информатике

Задачи с лицейской олимпиады от 15.10.2012г.

Задача А. Сортировка

Выполнить сортировку символов в строке по возрастанию «весов» символов, заданных таблицей ORD. Символы, не попавшие в таблицу, выводятся в конце таблицы по мере появления в тексте.

Ввод. В первой строке находится строка, задающая вес символов для сортировки (не более 200 символов), во второй строке – текст, который нужно отсортировать (не более 10000 сивмлов).

Вывод Вывести отсортированный по правилам текст.

Примеры

Ввод Вывод
АаБбВвГгДдЕе1234567890 Мама дала Гене 509 рублей. аааабГдеее590Мм л н рулй.
абвгдеёжзиклмнопрстуфхцчшщьыъэюя!:-)}{[].,? С ДНЕМ РОЖДЕНИЯ, мама! аамм!,СДНЕМРОЖДЕНИЯ


Задача B. День рождения

Заданы день и месяц рождения, а также текущие день, месяц и год в формате дд.мм.гггг. Определить, сколько дней осталось до дня рождения.

Примечание. Високосный год делится на 400 или делится на 4, но не делится на 100.

Ограничения: год от 1920 до 3000, месяц - от 1 до 12, день - от 1 до числа дней в месяце, время 1 с.

Ввод. В первой строке находятся разделённые точками день и месяц рождения, во второй - разделённые точками текущие день, месяц и год.

Вывод. Вывести число дней, оставшихся до дня рождения.

Примеры

Ввод Вывод
19.04 19.04.2002  
05.05 19.04.2002  
29.02 28.02.2001  


Задача C. Строка

В математике часто встречаются так называемые рекуррентные соотношения. Обычно они применяются для задания числовых последовательностей - очередное число в последовательности некоторым образом выражается через предыдущие. Примером такой последовательности являются числа Фибоначчи (в них очередное число равно сумме двух предыдущих). С помощью соотношений такого типа можно задавать не только последовательности чисел, но и последовательности строк. В этой задаче рассматривается последовательность строк 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. Химические реакции

Химическая реакция записана в виде уравнения, которое представлено строкой символов без пробелов, состоящей из одной или более химических последовательностей, разделённых знаком плюс. Каждая последовательность имеет необязательный предшествующий целый множитель, относящийся ко всей последовательности, и несколько элементов. Каждый элемент может сопровождаться необязательным целым множителем, относящимся к нему. Элемент в этом уравнении может быть или отдельным химическим элементом, или целой последовательностью в круглых скобках. Каждый отдельный химический элемент представлен или одной прописной буквой, или прописной буквой, сопровождаемой строчной.

Ещё более формально, используя нотацию, аналогичную форме Бэкуса-Наура, можно написать:

<формула>::= [<число>] <последовательность> {"+" [<число>] <последовательность>}

  • <последовательность>::= <элемент> [<число>] {<элемент> [<число>]}
  • <элемент>::= <химический элемент> | "(" <последовательность> ")"
  • <химический элемент>::= <прописная буква> [<строчная буква>]
  • <прописная буква>::= "A".."Z"
  • <строчная буква>::= "a".."z"
  • <число>::= "1".."9" {"0".."9"}

 

Будем говорить, что каждый отдельный химический элемент встречается в формуле всего X раз, если X - сумма всех различных вхождений этого химического элемента, умноженных на все числа, относящиеся к ним. Например, в формуле C2H5OH+3O2+3(SiO2)

 

  • C встречается всего 2 раза;
  • H встречается всего 6 раз (5 + 1);
  • O встречается всего 13 раз; (1 + 3 * 2 + 3 * 2);
  • Si встречается всего 3 раза.

 

Все множители в формулах - целые числа не меньше 2, если заданы явно, или равны 1 - по умолчанию.

 

Ввод. В первой строке находится химическая формула, записанная по вышеприведенным правилам.

 

Ограничения: каждый отдельный химический элемент встречается всего не более 10 000 раз, время 1 с.

 

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

 

Примеры

 

Ввод Вывод
C2H5OH+3O2+3(SiO2) C2H6O13Si3


Примечание. Настоящие тесты могут содержать любые допустимые символы.

Эти задачи из вариантов ЕГЭ, немного изменив условие.

Задача № B. Увеличитель

У исполнителя Увеличитель две команды, которым присвоены номера:

Прибавь a,

Умножь на b,

где 1<=a<=10, 2<=b<=100.

Первая из них увеличивает число на экране на a, вторая - умножает на b.

Программа для Увеличителя - это последовательность команд, возможно пустая. Помогите написать программу, которая ответит на вопрос: сколько есть программ, которые число X преобразует в число Y?

На вход подаются: в первой строке два числа через пробел: a и b; во второй строке - еще два числа через пробел: X и Y (X<=Y, 1<=X,Y<=10000).

На выходе выводится одно число - количество программ.

Пример

Входные данные Выходные данные
1 2 1 2  

 

Задача № C. Олимпиада по информатике

На городской олимпиаде по информатике участникам было предложено выполнить 3 задания, каждое из которых оценивалось по 25-балльной шкале. Известно, что общее количество участников первого тура олимпиады не превосходит 250 человек.

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

<Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов; <Баллы> – строка, содержащая три целых числа, разделенных пробелом, соответствующих баллам, полученным участником за каждое задание первого тура. При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом.

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

<Фамилия> <Имя> <Баллы>

На выходе в первой строчке вывести максимальный балл, а в следующих строчках Фамилию Имя участников, набравших его.

Пример

Входные данные Выходные данные
Петрова Ольга 25 18 16 Калиниченко Иван 14 19 15 Петрова Ольга

 

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...