Олимпиадный тренинг

Задача . A. Вилка!


Ланчбоксу надоело играть в шахматы! Его соперник только что снова поставил вилку королю и ферзю!

В шахматах вилка — ситуация, когда конь атакует две фигуры более высокого достоинства, обычно короля и ферзя. Ланчбокс знает, что кони могут делать очень хитрые ходы, а в той версии шахмат, в которую он играет, кони еще хитрее: вместо того, чтобы двигаться на \(1\) клетку в одну сторону и на \(2\) клетки в другую, кони в модифицированной игре Ланчбокса двигаются на \(a\) клеток в одну сторону и на \(b\) клеток в другую.

Ланчбокс играет в шахматы на бесконечной шахматной доске, которая содержит все клетки \((x,y)\), где \(x\) и \(y\) — (возможно, отрицательные) целые числа. Король и ферзь Ланчбокса размещены на клетках \((x_K,y_K)\) и \((x_Q,y_Q)\) соответственно. Найдите количество позиций, для которых, если на эту клетку поставить коня, он будет атаковать и короля, и ферзя.

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \leq t \leq 1000\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа \(a\) и \(b\) (\(1 \le a, b \le 10^8\)) — описание возможных ходов коня.

Вторая строка каждого набора входных данных содержит два целых числа \(x_K\) и \(y_K\) (\(0 \le x_K, y_K \le 10^8\)) — позицию короля Ланчбокса.

Третья строка в наборе входных данных содержит два целых числа \(x_Q\) и \(y_Q\) (\(0 \le x_Q, y_Q \le 10^8\)) — позицию ферзя Ланчбокса.

Гарантируется, что ферзь и король Ланчбокса находятся на разных клетках. То есть \((x_K,y_K) \neq (x_Q,y_Q)\).

Выходные данные

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

Примечание

В первом наборе входных данных конь может перемещаться на 2 клетки в одну сторону и на 1 клетку в другую (по сути, это то же самое, что и конь в стандартных шахматах). Конь, поставленный на \((2, 1)\) или \((1, 2)\), будет атаковать и короля, и ферзя.

Пример размещения коня, который атакует ферзя и короля в первом наборе входных данных. Клетки, которые атакует конь, выделены красным цветом.

Во втором наборе входных данных конь, размещенный на \((2, 2)\), атакует и короля, и ферзя.

Пример размещения коня, который не ставит вилку на ферзя и короля во втором наборе входных данных. Конь атакует короля, но не ферзя.

В третьем наборе входных данных конь, размещенный на \((4, 4)\) или \((4, -4)\), будет атаковать и короля, и ферзя.

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

(Спасибо EnDeRBeaT за красивые картинки)


Примеры
Входные данныеВыходные данные
1 4
2 1
0 0
3 3
1 1
3 1
1 3
4 4
0 0
8 0
4 2
1 4
3 4
2
1
2
0

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя