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

Задача . E. Прямоугольник


Задача

Темы: математика *1900

Разрабатывая инструменты для создания карт локаций для пошаговых боёв в новой игре, Петя столкнулся со следующей задачей.

Карта поля состоит из шестиугольных сот. Так как локации планируются очень большие, гейм-дизайнер хочет иметь инструмент для быстрого заполнения участка поля одинаковыми вражескими юнитами. Выглядеть это будет следующим образом: гейм-дизайнер будет выделять на карте прямоугольную область, и на каждой соте, центр которой попадает в выделенный прямоугольник, должен появиться выбранный вражеский юнит.

Более формально, если гейм-дизайнер выбрал соты с координатами (x1, y1) и (x2, y2), где x1 ≤ x2 и y1 ≤ y2, то заполняются все соты с координатами центров (x, y), такие что x1 ≤ x ≤ x2 и y1 ≤ y ≤ y2. Прямоугольная система координат введена таким образом, что одна из сторон сот параллельна оси OX, все центры шестиугольников имеют целочисленные координаты, для каждого целого x есть соты с центром с такой x-координатой и для каждого целого y есть соты с центром с такой y-координатой. Гарантируется, что разность x2 - x1 делится нацело на 2.

В процессе выполнения задачи Петя решил, что прежде чем отрисовать указанных юнитов, он хочет выводить на экран пользователя количество юнитов, которые в итоге будут отрисованы на карте.

Помогите ему реализовать подсчёт этих юнитов до отрисовки.

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

Единственная строка входных данных содержит четыре целых числа x1, y1, x2, y2 ( - 109 ≤ x1 ≤ x2 ≤ 109,  - 109 ≤ y1 ≤ y2 ≤ 109) — координаты центров двух сот.

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

Выведите одно целое число — количество сот, подлежащих заполнению.


Примеры
Входные данныеВыходные данные
1 1 1 5 5
13

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

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