Задача №111560. Охота на короля

Максим и Лёша поехали на сборы в Петрозаводск. После тура они решили не ходить на дорешивание, а поиграть в шахматы. Игра проходит на бесконечной доске, и в какой-то момент Максим хитрыми махинациями добился того, что у него осталось три белых ладьи, а у Алексея — один чёрный король.

После своего поражения Алексей заподозрил, что Максим в некоторый момент сжульничал (ну откуда на бесконечной шахматной доске взяться третьей белой ладье, да и куда подевался король Максима?). Чтобы восстановаить справедливость он потребовал реванша и предложил разыграть ситуацию, когда у Максима осталось две белых ладьи и король, а у Лёши  — чёрный король.

Помогите Максиму при таких условиях поставить мат Лёше и доказать тем самым, что он просто лучше играет в шахматы, а состав фигур ни на что не влияет.

Входные данные

Это интерактивная задача. При запуске решения на стандартный поток ввода поступают 8 чисел — координаты чёрного короля, двух белых ладей и белого короля на поле. Координаты не превосходят по модулю 10. Гарантируется, что в начальный момент никакие две фигуры не стоят на одной клетке, чёрный король не находится под боем ни одной из ладей, и короли не атакуют друг друга. Первыми делают ход белые фигуры, то есть начинает Максим.

На каждый ход Максима вводится ответный ход Алексея — перемещение короля dx, dy относительно текущей позиции (0 ≤ |dx|, |dy| ≤ 1). В случае, если |dx| = |dy| = 0, программа должна немедленно завершиться (это означает, что был поставлен мат, пат или сделан некорректный ход).

Выходные данные

Для каждого хода выводите на стандартный поток вывода три числа — обозначение фигуры (ладьи обозначаются как "R1" и "R2", король — как "K") и перемещение этой фигуры lx, ly (|lx| + |ly| > 0). Ход должен быть корректным, т. е. фигура не должна пойти в занятую клетку, ладья не может перепрыгнуть через другую фигуру, король не может пойти в клетку, атакуемую вражеским королём. Перемещение ладьи не должно быть больше, чем на 100 клеток.

Примеры тестов

Входные данные
3 2 0 3 2 0 1 0
0 -1
-1 1
1 0
-1 0
0 0
Выходные данные
R2 2 0
R1 4 0
R2 0 1
K 1 0
R2 0 1

Примечание

Вывод должен завершаться переводом строки и сбросом буфера потока вывода. Для этого используйте flush(output) на языке Паскаль или Delphi, fflush(stdout) или cout.flush() в С/C++, sys.stdout.flush() на языке Python, System.out.flush() на языке Java.

Программа не должна делать более 80 ходов. Если после хода программы мат не поставлен, а король сделать ход не может, то считается, что тест не пройден.

Ладья может ходить на произвольное количество клеток по горизонтали или по вертикали. Король же может ходить в любую соседнюю клетку, которая не находится под боем ладьи, в том числе, он может «съесть» ладью, если клетка, в которой ладья стоит, не находится под боем другой ладьи. Обратите внимание, что в случае, если король съест ладью, то выигрыш станет невозможным, и тест не будет пройден.

Мат — ситуация в шахматах, когда король находится под ударом ладьи, а игрок не может сделать ни одного хода, чтобы его избежать. Пат — ситуация в шахматах, когда король не находится под ударом ладьи, но при этом игрок не может сделать ни одного хода.

Тесты к этой задаче состоят из трёх групп партий.

  • Тесты 1–-13. Группа тестов оценивается в 20 баллов.
  • Тесты 14–-26. Группа тестов оценивается в 20 баллов.
  • Тесты 27–-66. Группа тестов оценивается в 60 баллов.

Баллы за каждую группу ставятся только при выигрыше всех партий в группе. Группы оцениваются независимо.

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

Пример ответа тестирующей системы для примера из условия.



Starting position: black king on (3 2), white rooks on (0 3) (2 0), white king on (1 0).

Turn 1
Max moves 2nd rook to (4 0)...
OK.
Alex moved king to (3 1)
Black king on (3 1), white rooks on (0 3) (4 0), white king on (1 0)

Turn 2
Max moves 1st rook to (4 3)...
OK.
Alex moved king to (2 2)
Black king on (2 2), white rooks on (4 3) (4 0), white king on (1 0)

Turn 3
Max moves 2nd rook to (4 1)...
OK.
Alex moved king to (3 2)
Black king on (3 2), white rooks on (4 3) (4 1), white king on (1 0)

Turn 4
Max moves king to (2 0)...
OK.
Alex moved king to (2 2)
Black king on (2 2), white rooks on (4 3) (4 1), white king on (2 0)

Turn 5
Max moves 2nd rook to (4 2)...
OK.
It's nowhere for king to go :-(
Game over! Checkmate - Max wins!

Положения фигур по ходу партии из примера.

Сдать: для сдачи задач необходимо войти в систему