РЕШИТЬ! ИНФОРМАТИКА!
Стартап BytelandCasualGames специализируется на разработке небольших компьютерных игр, предназначенных для игроков, которые могут уделить игре только небольшое время.
Сейчас в BytelandCasualGames разрабатывают онлайн-вариант известной игры, называемой «гексагональные шахматы»
Доска для гексагональных шахмат, используемая в этом варианте игры, имеет вид шестиугольника со стороной 6, собранного из 91 единичных шестиугольников, как показано на рисунке ниже, изображающем также начальную позицию в шестиугольных шахматах.
Аналоги вертикалей (их всего 11) занумерованы строчными латинскими буквами от `a' до `k' включительно. 11 горизонталей имеют V-образную форму и пронумерованы от 1 до 11 снизу вверх. Таким образом, каждая клетка, по аналогии с обычной шахматной нотацией имеет уникальную запись. Например, на горизонтали 11 есть только клетка “f11”, а вся горизонталь 7 на рисунке выше целиком занята чёрными пешками.
Ладья может перемещаться на произвольне количество шестиугольных клеток в любом из 6 направлений, как показано на иллюстрации ниже.
Вам даны два поля на шестиугольной доске. Требуется найти количество которыми ладья сможет дойти от первого поля до второго ровно за два хода.
Формат ввода
Входные данные содержат координаты двух различных полей в формате, описанном в условии задачи. Гарантируется, что поля с такими обозначениями существуют на доске.
Формат вывода
Выведите одно число — количество дойти ладьёй с первого поля до второго на пустой доске ровно за два хода.
Пример 1
Ввод Вывод
c4 h4
6
Пример 2
Ввод Вывод
a1 a2
5
По закону дистрибутивности раскроем скобки
(Av¬A)&(AvB)
Av¬A = 1, значит остаётся AvB
2) F =A&(¬AvB)
По тому же закону раскрываем скобки
(A&¬A)v(A&B)
A&¬A = 0, значит остаётся A&B
3. (AvB)&(¬BvA)&(¬CvB)
По закону склеивания (AvB)&(¬BvA) = A , получается, что выражение принимает вид
A&(¬CvB)
Можно раскрыть скобки, получим
A&¬C v A&B
4) F =(1v(AvB))v((AC)&1)
Скобка (1v(AvB)) = 1, так как 1 v ЧТОУГОДНО = 1
Получаем выражение
1v((AC)&1) = 1, так как 1 v ЧТОУГОДНО = 1
ответ 1
запись (record) — это пользовательский тип данных, котоорый может содержать поля с различными типами данных, например:
type
schools = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
students = record
name, surname : string;
age : byte;
school : schools;
end;
Для обращения к полям записи из главной программы необходимо разделять имя переменной типа Запись и поля, которое оно содержит, символом "." (точка). Например:
var
student : students;
begin
student.name := 'Иван';
student.surname := 'Пупкин';
end.
Если необходимо получить или изменить значения нескольких полей записи, то удобнее использовать конструкцию with:
begin
with student do begin
name := 'Вася';
surname := 'Пупкин';
age := 12;
school := 5;
end;
end.