Обсуждение задач и решений приветствуется.
Задача 1. РИМСКИЕ ЦИФРЫ
Создайте схему, переводящую числа, записанные римскими цифрами, в числа, записанные арабскими цифрами.
СПРАВКА: (взято из [url=http://ru.wikipedia.org/wiki/Римские цифры]Wikipedia[/url])
Римские цифры: Цифры, использовавшиеся древними римлянами в своей непозиционной системе
счисления.
Натуральные числа записываются при помощи повторения этих цифр. При этом, если
большая цифра стоит перед меньшей, то они складываются (принцип сложения), если
же меньшая — перед большей, то меньшая вычитается из большей (принцип
вычитания). Последнее правило применяется только во избежание четырёхкратного
повторения одной и той же цифры.
Число | Римское обозначение |
1 | I |
5 | V |
10 | X |
50 | L |
100 | C |
500 | D |
1000 | M |
Входные данные: файл Roman.in следующего формата:
- Строка 1: N - число строк с числами (N <= 100)
- Строки 2..N+1: Числа, записанные римскими цифрами
Выходные данные:
файл Roman.out, содержащий N строк. Каждая строка содержит либо число, записанное арабскими циффрами,
либо слово "NONUMBER" (входная строка содержит недопустимые символы), либо слово "BADNUMBER" (ошибка в записи числа).
Ограничения:
Время: 2.0 секунды
Задача 2. ТЕЛЕФОННЫЕ НОМЕРА
Создайте схему, находящую кратчайшую последовательность слов (т.е., с наименьшим количеством слов),
соответствующую заданному номеру телефона и списку слов. Соответствие букв и цифр описывается следующей схемой:
1 ij | 2 abc | 3 def |
4 gh | 5 kl | 6 mn |
7 prs | 8 tuv | 9 wxy |
0 oqz |
Входные данные: файл Phone.in следующего формата:
- Строка 1: N - номер телефона
- Строка 2: M - длинна "словаря"
- Строки 3..M+2: словарь (одно слово на строку)
Выходные данные: файл Phone.out, содержащий либо фразу, соответствующую номеру телефона,
либо слово "NOSOLUTION", если искомую фразу подобрать невозможно.
Ограничения:
Время: 2.0 секунды
Задача 3. КОРОВЫ
У фермера Джона N (2 <= N <= 50) различных коров, пронумерованных от 1 до N, и он хочет знать,
какие две из них больше всего похожи друг на друга. Он сделал цифровые фотографии размером 5х7 каждой коровы,
и хочет, чтобы вы помогли ему сравнить их.
Фотографии показывают расположение чёрных и белых пятен коровы. Вот фотографии двух разных коров:
Корова 1 Корова 2
..X.... ...X...
.XXX... ..XX...
.XX.... .XX....
.....X. .XX..X.
.X...X. .X...X.
Чтобы сравнить коров, сравнивают каждое из пятен одной коровы с соответствующим пятном другой.
"Коэффициент схожести" увеличивается на 1 для каждой совпадающей пары пятен. Пара коров, изображённых выше,
имеют коэффициент 30, так как только 5 пятен не совпадают (помечены "#" ниже):
++##+++
+#+++++
+++++++
+##++++
+++++++
По заданному набору коров, найдите пару с наибольшим "коэффициентом схожеси",
и выведите их номера в порядке возрастания. Наличие только одной такой пары гарантировано.
Входные данные:
файл Cow.in следующего формата:
- Строка 1: N - число коров
- Строки 2..N*5+1: Цифровые фотографии коров, в которых корова i изображена в строках с i*5-3 по i*5+1.
Выходные данные:
Строка, содержащая номера коров с наибольшим "коэффициентом схожести", упорядоченные по возрастанию.