В гномьем подземелье работает широко известный клуб «Мятый эльф» с очень строгим фейс-контролем. На входе в клуб находится охранник и проверяет посетителей по ряду критериев.
Есть критерии для отбора с кодовыми обозначениями и диапазонном значений.
Первичные:
- L - рослость [1..200]
- B - длина бороды [0…100]
- W - воинственность [0…10]
- G - рыжесть [0…10]
Вторичные:
- H - квадратность головы [0…10]
- E - запах пива [0…10]
- A - размер топора [0…300]
Некоторые качества строго положительны – чем больше, тем лучше. Это длина бороды, рыжесть и воинственность. Остальные параметры хороши не всегда. Вторичные параметры могут зависеть от первичных.
У охранника есть свои взгляды на мир и требования к посетителю.
Например, у Жралина такие требования:
- рослость – от 100 до 160
- длина бороды – от 30
- рыжесть – от 5
- квадратность головы – от 4 до 7
- размер топора – от рослости
А у Кралина такие:
- рослость – от 120
- длина бороды – от 40
- рыжесть – от 3
- размер топора – от 80 до рослости
- запах пива – от рыжести до воинственности
Краткая запись критериев имеет один из видов:
-
X:N-M
, гдеX
- код качества, аN
- либо целое число в соответствующем диапазоне, либо код другого критерия (если это вторичное качество). Для строго положительных качеств такой записи не может быть -
X:N
- качествоX
, ограниченное только снизу значениемN
по той же логике Например,L:100-120
означает «рослость от 100 до 120», аA:L
- «размер топора больше рослости».
Задача – проверить каждого посетителя по критериям охранника и либо впустить его в клуб с уважением, либо прогнать без уважения.
Оценочное суждение охранника вида
L:100-120 B:30 G:5 H:4-7 A:L
Качества посетителя вида
L:132 B:40 W:4 G:8 H:1 E:8 A:222
true
или false
– прошёл ли посетитель контроль.
Вход:
L:100-160 B:30 G:5 H:4-7 A:L
L:132 B:40 W:4 G:8 H:5 E:8 A:122
Выход:
false
Вход:
L:100-160 B:30 G:5 H:4-7 A:L
L:132 B:40 W:4 G:8 H:5 E:8 A:222
Выход:
true