С момента пробуждения
«утром» человек слышит разные звуки: звук проходящего мимо поезда («поезд»),
стук закрываемой двери в какой-нибудь из соседних квартир («дверь»), шум
подъехавшего или отъезжающего лифта («лифт»).
Поезда каждый день проходят
точно по расписанию. Соседи уходят и возвращаются в одно и то же время. От
любой двери до лифта нужно идти 1 мин.
Сосед всегда хлопает дверью:
и когда уходит, и когда возвращается.
Соседка хлопает дверью
только когда уходит, возвращаясь, она закрывает дверь тихо.
И сосед, и соседка всегда
пользуются лифтом. Никто другой лифтом не пользуется.
Требуется написать программу, которая, по известному
расписанию движения поездов, времени ухода и возвращения соседей, набору
звуков, которые в это «утро» услышал человек с момента пробуждения, и
промежутков времени между звуками определит, когда он проснулся.
Входные
данные
вводятся из файла INPUT.DAT.
В первых 5 строках находятся записи моментов времени. Каждая запись состоит из пары целых чисел, разделенных двоеточием, первое число – часы, второе – минуты. Записи в строке разделяются пробелом.
Первая строка содержит график движения поездов: (не
более 10 записей)
Вторая строка содержит моменты ухода соседа (не более 2 записей).
Третья строка содержит моменты ухода соседки (не более 2 записей)
Четвертая строка содержит моменты возвращения соседа
(не более 2 записей)
Пятая строка содержит моменты возвращения соседки (не более 2 записей)
В шестой строке записывается
набор записей звуков (не более 10), которые слышит человек. Запись звука
состоит из промежутка времени между этим и предыдущим звуком (число часов и
число минут, разделенные двоеточием) и, через пробел, названия звука. В записи
первого звука указывается промежуток времени от пробуждения человека до этого
звука.
Пример
файла INPUT.DAT
0:20 12:30 17:45
10:00
7:00
22:45
17:00
0:09 лифт 0:46 поезд
Этот файл говорит о том, что
поезда прошли в 0ч. 20 мин, 12 ч. 30 мин, 17 ч. 45 мин.; сосед уходит
в 10 ч 00 мин, возвращается в 22 ч. 45 мин; соседка уходит в 7 ч. 00 мин.,
возвращается в 17 ч. 00 мин. Последняя строка файла означает, что через 9 минут
после пробуждения человек услышал звук лифта и еще через 46 минут звук поезда.
Выходные
данные.
Результат следует вывести в файл OUTPUT.DAT в формате: «часы:минуты»
Например,
приведенному выше файлу INPUT.DAT
соответствует результат 16:50.
Оценка - 34
Для изготовления мозаичных
рисунков используются белые и черные плитки размера 1´1.
Мозаичные рисунки имеют
прямоугольную форму, а изображение на них представляет набор прямоугольников из
черных плиток. Стороны прямоугольников параллельны сторонам рисунка. Никакие
фигуры на рисунке не касаются и не пересекаются.
Необходимо получить
увеличенную или уменьшенную копию заданного рисунка, выложенную такими же
плитками. Отношения сторон фигур и расстояний между ними на копии рисунка
должны быть такими же, как и на оригинале.
Размер исходного рисунка не
более 50´50 плиток.
Требуется написать
программу, которая по заданному рисунку изготавливает его копию, с
коэффициентом пропорциональности в L/K
раз (где L и K – натуральные числа) или указывает, что это сделать невозможно.
Пример.
Исходный рисунок:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Копия с коэффициентом пропорциональности в 2/1 раза:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Копия с коэффициентом пропорциональности 2/3:
|
|
|
|
|
|
|
|
|
|
Входные
данные.
Данные вводятся из файла INPUT.DAT.
В первой строке файла указаны числа M
и N -
размеры рисунка (M – количество строк, N количество символов в каждой)
Далее идут M строк по
N символов в каждой, представляющих исходный рисунок. В
них черные плитки обозначены символом «*», а белые – символом «+».
В последней строке два целых числа L и
K – числитель и знаменатель коэффициента пропорциональности.
Например,
8 8
++****++
++****++
++++++++
++++++++
++****++
++****++
++****++
++****++
1 2
Выходные данные
Вывод производится в файл OUTPUT.DAT в виде
строк из символов «*» и «+»,
представляющих требуемую копию рисунка.
Например, для приведенного выше файла INPUT.DAT,
файл OUTPUT.DAT будет таким:
+**+
++++
+**+
+**+
Если же невозможно получить копию, удовлетворяющую
требованиям, файл должен содержать одно слово: «невозможно».
Оценка
– 33
Игровое поле состоит из 8
клеток, расположенных в ряд, каждая клетка обозначена буквой латинского
алфавита (от a до h). На клетках d, f и h стоят шашки. Шашки пронумерованы (1,
2, 4). По правилам игры любую шашку можно переставлять на любую клетку в
направлении от h к a. Шашки также можно ставить друг на друга. Игроки ходят по
очереди, не пропуская ходов. Выигрывает тот, кто последний поставит шашку на
клетку а.
Требуется написать программу, которая играет за
первого игрока и выигрывает.
Входные данные: с клавиатуры вводится номер передвигаемой
шашки и буква клеточки, на которую она будет передвинута.
Выходные данные:
После каждого хода и программы, и игрока выводится новое положение поля
в виде двух строк символов:
в первой строке обозначения
клеточек (a-h),
во второй расположение шашек (номер шашки должен располагаться под символом клеточки, на которой она стоит, если на одной клеточке несколько шашек – под ней выводится сумма номеров этих шашек), пустые клеточки обозначаются пробелом.
Далее запрашиваются данные для следующего хода.
Например:
abcdefgh
1
2 4
abcdefgh
12 4
? 2 d
abcdefgh
3 4
abcdefgh
4 3
?
Программа завершает работу, когда все 3 шашки
оказываются на клетке а.
Оценка
- 33