eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Спасти котёнка

Спасти котёнка

Артур принимает участие в телешоу, в котором участникам необходимо выполнять различные интеллектуальные и физические задания, чтобы зарабатывать очки. В одном из таких заданий Артуру необходимо спасти маленького котёнка. Поле для выполнения задания представляет собой прямоугольник размером \textbf{n}×\textbf{m} метров, разбитый на квадраты единичной площади. В одном из квадратов исходно находится Артур, в некотором другом квадрате находится котёнок. Кроме того, один из квадратов содержит лифт, встав на который вместе с котёнком, Артур успешно выполняет задание. За один шаг Артур может перемещаться на любой квадрат, имеющий общую сторону с тем, на котором он стоит. После этого квадрат, на котором перед этим шагом стоял Артур, исчезает и больше на него вставать нельзя. Таким образом исчезают в том числе и квадрат, на котором исходно стоял Артур, и квадрат с котёнком. Цель Артура --- дойти до котёнка, взять его и затем дойти до лифта. При этом очки за выполнение задания, зависят от числа шагов, которое сделает Артур, поэтому ему необходимо сделать минимальное число шагов. Выяснив, сколько шагов ему придётся сделать, Артур заинтересовался, сколько существует различных способов дойти до котёнка, а затем с ним до лифта, сделав в сумме минимальное число шагов. Помогите ему это выяснить. Это число может быть довольно большим, поэтому Артур просит найти его по модулю \textbf{10^9+7}. \InputFile Первая строка входного файла содержит два натуральных числа \textbf{n} и \textbf{m} --- размеры поля для выполнения задания (\textbf{2} ≤ \textbf{n}, \textbf{m} ≤ \textbf{100}). Вторая строка содержит два целых числа \textbf{x_A} и \textbf{y_A} --- координаты квадрата, на котором исходно находится Артур (\textbf{1} ≤ \textbf{x_A} ≤ \textbf{n}, \textbf{1} ≤ \textbf{y_A} ≤ \textbf{m}). Третья строка содержит два целых числа \textbf{x_K} и \textbf{y_K} --- координаты квадрата, на котором сидит котенок (\textbf{1} ≤ \textbf{x_K} ≤ \textbf{n}, \textbf{1} ≤ \textbf{y_K} ≤ \textbf{m}). Четвертая строка содержит два целых числа \textbf{x_E} и \textbf{y_E} --- координаты квадрата, на котором находится лифт (\textbf{1} ≤ \textbf{x_E} ≤ \textbf{n}, \textbf{1} ≤ \textbf{y_E} ≤ \textbf{m}). Эти три квадрата попарно различны. \OutputFile В единственной строке выходного файла выведите одно число --- число способов дойти до котенка и затем до лифта, не наступая на один квадрат два раза, совершив при этом минимальное количество шагов. Число необходимо вывести по модулю \textbf{10^9+7}. \textbf{Примечание к примеру} \includegraphics{https://static.e-olymp.com/content/91/9182e38b7fdc3067d0b652083c79a68972b38324.jpg} Два способа для поля, приведённого в примере.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3 3
1 1
3 3
2 2
Выходные данные #1
2
Источник XIII Всероссийская командная олимпиада школьников по программированию