КОМПЬЮТЕРРА


"Стрелки" (HELP) 

Автор: Константин Кноп, Konstantin@Knop.com
Дата публикации:06.09.2000

Соавторство: Ольга Леонтьева


Стрелки

"Стрелки" - головоломка, регулярно встречающаяся на чемпионатах мира. В ней требуется расставить стрелки в клетках по краям таблицы 5x5 так, чтобы каждое число, стоящее в этой таблице, указывало, сколько стрелок на него направлено. Стрелки могут быть вертикальными, горизонтальными или диагональными. Каждая стрелка должна указывать хотя бы на одну цифру.

1237.gif (2929 bytes) 

На рисунке слева изображено условие задачи. Для удобства занумеруем все граничные клетки числами (от 1 до 20, по часовой стрелке).

Будем обозначать светлозеленым цветом те цифры квадрата 5x5, о которых мы рассуждаем, а голубым - все цифры, для которых все указывающие на них стрелки уже расставлены. Как и в большинстве головоломок, для решения "стрелок" нужно аккуратно провести цепочку логических рассуждений. Очень важно увидеть первый шаг. Рекомендуется начинать с больших цифр: так, если среди цифр есть 8, то можно сразу отметить все стрелки, направленные на нее, так как их всего восемь (две горизонтальных, две вертикальных, и четыре диагональных). То же самое можно сделать, если в клетке на одной из двух диагоналей стоит цифра 6, или если цифра 4 находится в центре.

1238.gif (3244 bytes)

Если этого нет, то нужно посмотреть, не встречается ли цифра 7 в одном ряду с цифрой 1. В этом случае можно смело ставить остальные 6 стрелок, направленные на нее. Но в нашем случае и этого нет. А что же есть? Посмотрите внимательно на цифру 7 и на цифру 4 в левом нижнем углу. Обратите внимание: ни одна стрелка не может указывать на обе цифры одновременно, а клеток, из которых можно направить стрелку на хотя бы одну из этих цифр - ровно 11, то есть 7+4. Поэтому часть стрелок (а именно, 3, 5, 7, 13, 14, 15, 17 и 19 - все те, которые могут указывать ровно на одну из двух этих цифр) - можно уже расставить (см. рис.).

1239.gif (3287 bytes)

Отмечаем голубым цифру 1, на которую уже направлена стрелка, а также цифру 2, на которую уже направлены две стрелки. На цифру 1 в правом нижнем углу будет направлена горизонтальная стрелка или из клетки 10, или из клетки 16 (так как она в одном ряду с рассмотренной раньше цифрой 4). Поэтому из клетки 11 вертикальной стрелки быть не может. Так как для восьми угловых клеток (1, 5, 6, 10, 11, 15, 16 и 20) существует лишь два возможных направления стрелок, то в клетке 11 проводим стрелку диагонально, и тут же выделяем голубым цифру 3 - на нее уже направлены три стрелки.

1240.gif (3370 bytes)

Аналогично, так как стрелки 6 и 20 не могут быть направлены диагонально (на голубую цифру 3), то строим их горизонтальными. Аналогично строим диагонально вправо-вниз стрелку 1. Наконец, рассмотрим цифру 3 в правом верхнем углу: на нее направлены уже две из построенных стрелок, а третьей может быть лишь стрелка из клетки 4 (все остальные возможные стрелки уже использованы). Проводим эту стрелку и помечаем голубым цифру 3.

1241.gif (3446 bytes) 

Из клетки 12 стрелка не может быть направлена ни по диагонали вправо-вверх (т.к. на 1 уже направлена горизонтальная стрелка), ни влево-вверх, то есть она может быть только вертикальной. Ставим ее и тут же помечаем голубым цифру 1 на ее пути. Стрелка 9 не может быть направлена ни диагонально влево-вниз, ни горизонтально. Поэтому она идет влево-вверх. Помечаем ближайшую к ней цифру 1.

Разумеется, цепочка логических рассуждений может иметь и другой порядок: обычно существует несколько путей, ведущих к решению.

1242.gif (3629 bytes)

Рассмотрим зеленую цифру 3. Горизонтальных стрелок на нее быть не может (из-за единиц, которые уже отмечены голубым цветом), и поэтому третья стрелка может быть направлена на нее лишь из клетки 10. Сразу же определяется и направление стрелки 16. Далее, на зеленую цифру 1 может быть направлена лишь вертикальная стрелка 2. Наконец, рассматривая зеленую цифру 5, убеждаемся, что стрелка 8 должна быть направлена влево-вверх, а стрелка 18 - вправо-вниз.

1243.gif (3546 bytes)

наконец, когда все стрелки расставлены, необходимо обязательно убедиться, что в решении не было ошибок, то есть проверить, что каждая цифра квадрата 5x5 действительно равна количеству стрелок, направленных на нее.

Ваши Ольга Леонтьева и Константин Кноп