Задача
Борис очень любит различные шахматные головоломки. У него есть младший брат Вова. Борис очень любит задавать простые головоломки Вове, а в награду, если тот их решит, давать ему конфету. Но Вова, к сожалению, не очень любит шахматы, зато любит программирование.
В этот раз Борис задал Вове следующую головоломку: на шахматном поле размером $8 × 8$ клеток стоит одна шахматная фигура — конь. Необходимо расположить на поле еще две шахматные фигуры — ладью и слона, таким образом, чтобы они били коня, но не били друг друга, и конь не бил их. Так как Вова еще не очень силен в программировании, он попросил вас помочь ему с решением данной головоломки.
Напомним, что конь бьет те клетки, которые отстоят от его текущего положения на две клетки по горизонтали и одну клетку по вертикали, или на две клетки по вертикали и одну по горизонтали.
Ладья бьет те клетки, которые находятся на той же горизонтали или вертикали, что и она. Слон бьет те клетки, которые находятся на той же диагонали, что и он.
Входные данные
Первая строка входного файла содержит положение коня в следующем формате. Сначала буква от $a$ до $h$, обозначающая номер столбца в котором находится конь, потом цифра от $1$ до $8$, обозначающая номер строки.
Выходные данные
В первую строку выведите положение ладьи в аналогичном формате, во вторую строку выведите положение слона.
Гарантируется, что требуемая расстановка всегда существует.
Тесты
№ | Ввод | Вывод |
1 | a1 | d1 b2 |
2 | h8 | e8 g7 |
3 | e5 | b5 d4 |
4 | c8 | f8 d7 |
5 | h6 | e6 g5 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> using namespace std; int main() { int k1; char k0; cin >> k0 >> k1; int n = 8; //Вводим n, чтобы иметь возможность изменить размер доски char mid = char (('a' + n) - n / 2); //Находим середину доски if ( k1 != 1) { if (k0 < mid) cout << char(k0 + 3) << k1 << "\n" << char(k0 + 1) << k1 - 1; else cout << char(k0 - 3) << k1 << "\n" << char(k0 - 1) << k1-1; } else { if (k0 < mid) cout << char(k0 + 3) << k1 << "\n" << char(k0 + 1) << k1 + 1; else cout << char(k0 - 3) << k1 << "\n" << char(k0 - 1) << k1 + 1; } return 0; } |
Решение
Для решения данной задачи ладью всегда будем размешать на две клетки левее или правее коня, а слона — на одну клетку вниз/вверх по диагонали от него.