아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

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

면접 대비

시간 제한2초메모리 제한512 MB

요약
n×m 격자에서 아서가 A에서 고양이 K까지 갔다가 엘리베이터 E로 이동한다. 지나간 칸은 사라져 다시 밟을 수 없으며, 최소 걸음 수인 경로의 가짓수를 10^9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 조합론, 구현, 수학
정답자
아직 제출이 없습니다

문제

Артур принимает участие в телешоу, в котором участникам необходимо выполнять различные интеллектуальные и физические задания, чтобы зарабатывать очки. В одном из таких заданий Артуру необходимо спасти маленького котенка.

Поле для выполнения задания представляет собой прямоугольник размером n×mn \times m метров, разбитый на квадраты единичной площади. В одном из квадратов исходно находится Артур, в некотором другом квадрате находится котенок. Кроме того, один из квадратов содержит лифт, встав на который вместе с котенком, Артур успешно выполняет задание. 

За один шаг Артур может перемещаться на любой квадрат, имеющий общую сторону с тем, на котором он стоит. После этого квадрат, на котором перед этим шагом стоял Артур, исчезает и больше на него вставать нельзя. Таким образом исчезают в том числе и квадрат, на котором исходно стоял Артур, и квадрат с котенком. Цель Артура --- дойти до котенка, взять его и затем дойти до лифта. При этом очки за выполнение задания, зависят от числа шагов, которое сделает Артур, поэтому ему необходимо сделать минимальное число шагов.

Выяснив, сколько шагов ему придется сделать, Артур заинтересовался, сколько существует различных способов дойти до котенка, а затем с ним до лифта, сделав в сумме минимальное число шагов. Помогите ему это выяснить. Это число может быть довольно большим, поэтому Артур просит найти его по модулю 109+710^9+7.

입력

Первая строка входного файла содержит два натуральных числа nn и mm --- размеры поля для выполнения задания (2≤n,m≤1002 \le n, m \le 100). 

Вторая строка содержит два целых числа x_Ax\_A и y_Ay\_A --- координаты квадрата, на котором исходно находится Артур (1≤x_A≤n1 \le x\_A \le n, 1≤y_A≤m1 \le y\_A \le m). Третья строка содержит два целых числа x_Kx\_K и y_Ky\_K --- координаты квадрата, на котором сидит котенок (1≤x_K≤n1 \le x\_K \le n, 1≤y_K≤m1 \le y\_K \le m). Четвертая строка содержит два целых числа x_Ex\_E и y_Ey\_E --- координаты квадрата, на котором находится лифт (1≤x_E≤n1 \le x\_E \le n, 1≤y_E≤m1 \le y\_E \le m). Эти три квадрата попарно различны.

출력

В единственной строке выходного файла выведите одно число --- число способов дойти до котенка и затем до лифта, не наступая на один квадрат два раза, совершив при этом минимальное количество шагов. Число необходимо вывести по модулю 109+710^9+7.

힌트

Два способа для поля, приведенного в примере.

예제1

  1. 예제 1

    입력
    3 3
    1 1
    3 3
    2 2
    
    예상 출력
    2