Программа для робота на большом листе клетчатой бумаги нарисовали систему координат. в точке (0; 0) маленький робот. он может выполнять команды right, left, up, down, смещаясь на единичный отрезок в соответствующем направлении. вася пишет программу для робота, состоящую ровно из 12 команд и приводящую его в точку с координатами (6; 4). ему стало интересно: а сколько всего существует таких программ? ему ответить на этот вопрос. в качестве ответа укажите одно натуральное число — количество таких команд. комментарий. если робот находится в начале координат и выполнил команду right, он окажется в точке (1; 0). если после этого он выполнит команду left, то вернется обратно в точку (0; 0). если теперь он выполнит команду up, то окажется в точке (0; 1), а если затем выполнит команду down, то опять вернется в точку (0; 0). программа робота – это набор команд. программы, отличающиеся перестановкой команд, считаются различными. например, есть 9 различных программ, состоящие ровно из 3 команд, приводящие робота из точки (0; 0) в точку (1; 0): right left right; up down right; down up right; up right down; down right up; right up down; right down up; right right left.
var steps := 12; // За кол-во ходов
var Xend := 6; // В точку с координатой X
var Yend := 4; // ... и Y
var vars := 0; procedure Find(step, X, Y : Integer);
begin
if step = 0 then
vars += (X = Xend) and (Y = Yend) ? 1 : 0
else
begin
Find(step - 1, X + 1, Y );
Find(step - 1, X - 1, Y );
Find(step - 1, X , Y + 1);
Find(step - 1, X , Y - 1);
end;
end;
begin
Find(steps, 0, 0);
Print(vars);
end.