0289. Клавиатура
Имя входного файла: | keyboard.in |
Имя выходного файла: | keyboard.out |
Ограничение по времени: | 5 s |
Ограничение по памяти: | 256 megabytes |
Наверное, каждый программист считает своим долгом изобрести велосипед и наблюдать, как он работает, так и программист Валера решил изобрести робота, который бы печатал заданный текст на любой клавиатуре. Из-за сложностей реализации распознавания образов клавиш, было решено использовать прямоугольные клавиатуры, которые бы имели вид матрицы 3 *10, каждая ячейка которой – один из символов следующего алфавита: `a', `b', `c', …, `x', `y', `z', `?', `!', `.', `,'. Помимо этого, в тексте могут встречаться пробелы, поэтому каждая клавиатура имеет клавишу пробела шириной 10 ячеек, которая по существу является четвертым нижним рядом клавиш.
Валера пытается сделать из робота профессионала с 10-пальцевой печатью, но так как робот не резиновый, пришлось ввести следующие ограничения на расположение робопальцев:
- робот имеет две руки по пять пальцев на каждой,
- оба больших пальца рук должны всегда располагаться на клавише пробела и, в случае необходимости, нажимать на неё,
- в каждом столбце клавиш (от 1 до 10) может располагаться максимум один палец,
- руки не должны перекрещиваться,
- пальцы каждой из рук не должны перекрещиваться,
- пальцы разных рук не должны перекрещиваться.
Перед запуском набора текста мизинец, безымянный, средний и указательный пальцы левой руки робота находятся соответственно на следующих позициях: (2, 1), (2, 2), (2, 3), (2, 4), а соответствующие пальцы правой руки находятся на следующих позициях: (2, 7), (2, 8), (2, 9), (2, 10).
Валера решил написать программу, которая бы соблюдала описанные требования к расположению пальцев во время набора текста, а также позволяла набрать текст роботу как можно быстрее.
Формат входного файла
Первые три строки файла содержат по 10 разделенных пробелом символов из описанного в условии алфавита (без пробела). Четвертая строка файла содержит текст, составленный из того же набора символов и пробела длиной не более 20 символов. В данной задаче вы можете считать, что робот тратит одну минуту на распознавание любого символа, даже пробела, несмотря на то, что два больших пальца находятся на них постоянно. %Пятая строка файла содержит время (в минутах) на распознавание каждого непробельного символа на клавиатуре.
Формат выходного файла
В выходной файл выведите целое положительное число – время в минутах, затрачиваемое на набор роботом заданного текста.
Пример:
keyboard.in | keyboard.out |
---|---|
a b c d e f g h i j k l m n o p q r s t u v w x y z , . ! ? some . | 9 |
Источник: Первенство ПетрГУ. Сентябрь 2012.
Обсудить Отправить решение
Версия для печати