Доска для гексагональных шахмат имеет вид шестиугольника со стороной 6, собранного из 91 единичных шестиугольников, как показано на рисунке ниже, изображающем также начальную позицию в шестиугольных шахматах.
Аналоги вертикалей (их всего 11) занумерованы строчными латинскими буквами от `a' до `k' включительно. 11 горизонталей имеют V-образную форму и пронумерованы от 1 до 11 снизу вверх. Таким образом, каждая клетка, по аналогии с обычной шахматной нотацией имеет уникальную запись. Например, на горизонтали 11 есть только клетка “f11”, а вся горизонталь 7 на рисунке выше целиком занята чёрными пешками.
Ладья может перемещаться на произвольное количество шестиугольных клеток в любом из 6 направлений, как показано на иллюстрации ниже.
Вам даны два поля на шестиугольной доске. Требуется найти количество которыми ладья сможет дойти от первого поля до второго ровно за два хода.
Формат ввода
Входные данные содержат координаты двух различных полей в формате, описанном в условии задачи. Гарантируется, что поля с такими обозначениями существуют на доске.
Формат вывода
Выведите одно число — количество дойти ладьёй с первого поля до второго на пустой доске ровно за два хода.
Пример 1
Ввод Вывод
c4 h4 6
Пример 2
Ввод Вывод
a1 a2 5
var
a,b,c:integer;
begin
Write('Введи a,b,c: '); Read(a,b,c);
if (a=b) or (a=c) or (b=c) then Writeln('Есть пара одинаковых')
else Writeln('Все числа различные')
end.
Тестовое решение:
Введи a,b,c: 6 3 -12
Все числа различные
Введи a,b,c: 5 -4 5
Есть пара одинаковых
// PascalABC.NET 3.0, сборка 1073
var
n:string;
a,b:char;
begin
Write('Введи натуральное число n: '); Readln(n);
Write('Введи подряд пару разыскиваемых цифр: '); Read(a,b);
if Pos(a,n)>0 then Writeln('В числе есть цифра '+a)
else Writeln('В числе цифры '+a+' нет');
if Pos(b,n)>0 then Writeln('В числе есть цифра '+b)
else Writeln('В числе цифры '+b+' нет')
end.
Тестовое решение:
Введи натуральное число n: 3141592653589793
Введи подряд пару разыскиваемых цифр: 47
В числе есть цифра 4
В числе есть цифра 7
// PascalABC.NET 3.0, сборка 1073
var
i,n:integer;
fiba,fibb,fib:longint;
begin
Write('Введи натуральное число (1-46): '); Read(n);
if n<3 then Writeln('Число Фибоначчи равно 1')
else begin
fiba:=1; fibb:=fiba;
for i:=3 to n do begin
fib:=fiba+fibb;
fiba:=fibb; fibb:=fib
end;
Writeln('Число Фибоначчи равно ',fib)
end
end.
Тестовое решение:
Введи натуральное число (1-46): 13
Число Фибоначчи равно 233