четверг, 6 декабря 2012 г.

9 "Г" Срочные задачи для подготовки к олимпиаде!


Интересная задачка с муниципального этапа Кемеровской области 2012. 
Моя огромная благодарность Ганиловой Татьяне, за помощь в подготовке учащихся нашей гимназии к олимпиаде и подбор задач. Тесты у меня.
Паркет

Ограничение по времени: 1 секунда
Ограничение по памяти: 16 Мб

В далекой заморской земле в самом большом здании города, представляющем собой прямоугольник размерами N * M, решено положить новый паркетный пол. После продолжительных обсуждений на всеобщем городском совете был, наконец, одобрен следующий проект: фигурками вида (только такие паркетные доски и производит местная паркетная фабрика):

 уложить вот такой рисунок (рисунок начинается с левого верхнего угла):

Ясно, что некоторые из приобретенных фигурок при укладке рисунка придется распилить. При этом возможно, некоторые части, на которые разделили фигурку, не будут участвовать в формировании рисунка. Вам необходимо определить минимальное количество фигурок требующих распила. Например, если размеры здания 3x4, то можно будет уложить 2 целых фигурки, а еще одну придется распилить. На рисунке ниже части, на которые распилили дополнительную фигурку, закрашены серым цветом.

Формат входного файла: В единственной строке входного файла содержатся два натуральных числа N и M, не превосходящие 109 – размеры прямоугольника, который необходимо замостить указанными фигурками.
Формат выходного файла: Необходимо вывести одно целое число – количество фигурок, которые придется распилить при укладке рисунка.
Пример:
parket.in
parket.out
3 4
1
2 6
2
2 9                                                                                        3

Словарь

Ограничение по времени: 1 секунда
Ограничение по памяти: 16 Мб

В языке одного из племен, затерянных на марсианских просторах, все слова одной и той же длины N, причем буквы в каждом слове попарно различны. В алфавите этого племени насчитывается N букв. Ученые-марсологи выяснили, что в словарь входят все возможные перестановки из N букв.
Переводчик в своем походном марсианско-русском словаре обозначает первую букву марсианского алфавита за «A», вторую за «B» и так далее (N не превосходит 20). Разумеется, слова в словаре упорядочены по алфавиту. И когда он встречает в какой-нибудь марсианской книге редко используемое слово, ему приходится долго листать словарь в поисках перевода. Помогите переводчику по марсианскому слову определить его порядковый номер в словаре.
Формат входного файла: В первой строке файла записано натуральное число N, не превосходящее 20, - длина слова. Следующая строка содержит марсианское слово для перевода. Слово состоит из заглавных латинских букв.
Формат выходного файла: Необходимо вывести одно целое число – порядковый номер этого слова в марсианско-русском словаре.
Примеры:
slovar.in
slovar.out
3
ABC
1
3
BCA
4
Школа

Ограничение по времени: 1 секунда
Ограничение по памяти: 64 Мб

В школе некоторые из ребят хотели бы перейти из своего класса в другой, параллельный. Однако сделать это можно только в том случае, если кто-то из учеников этого класса также решит сменить класс – и освободит, таким образом, место. Скажем, ученик «10А» Антон сможет перейти в «10Г», если, например, Вера из «10Г» захочет перейти в «10Б», а Лена из «10Б» – в «10А».
Вам известны предпочтения ребят (ровно одно для каждого ученика). Необходимо определить длину максимальной цепи переходов учеников из класса в класс. Например, в разобранном выше случае длина цепи переходов составляет 3.
Формат входного файла: В первой строке входного файла задано количество N учеников, желающих перейти в другой класс. Каждая из следующих N строк состоит из имени ученика, буквы класса (отделенной от имени одним пробелом), в котором он учится, и отличной от нее буквы класса (также отделенной одним пробелом), куда хочет перейти. Используются только латинские буквы. Буквы класса – прописные. Длина имени ученика не превосходит 20.
Формат выходного файла: Одно целое число – длина максимальной цепи переходов.
Пример:
school.in
school.out
5
Anton A G
Petr G A
Roma B V
Vera G B
Lena B A
3

Примечание. В приведенном примере возможны две цепочки переходов:
1.
Anton из A в G, Petr из G в A – цепочка длины 2;
2.
Anton из A в G, Vera из G в B, Lena из B в A – цепочка длины 3.