Цілочисельні багатокутники
Інгрід володіє магазином багатокутників у далекій країні. Вона спеціалізується на продажу лише опуклих багатокутників з цілими координатами. Її клієнти надають перевагу багатокутникам, які можна правильно розрізати на дві частини. Це означає, що розріз має бути прямою лінією, яка починається і закінчується у вершинах багатокутника, а обидві частини повинні бути непорожніми і мати цілочисельну площу. Чим більше способів правильно розрізати багатокутник, тим він цінніший.
Наприклад, існує три способи розрізати лівий багатокутник правильним чином і два способи для правого багатокутника.
Багатокутники в магазині завжди відмінної якості, тому бізнес Інгрід процвітає. Тепер їй потрібен автоматичний інструмент для визначення кількості способів правильного розрізання багатокутника. Це дуже важливо для її магазину, інакше вона витратить багато часу на встановлення цін. Уявіть лише, скільки часу знадобиться, щоб встановити ціну на фургон середнього розміру з багатокутниками. Чи не могли б ви допомогти Інгрід і створити для неї програму?
Вхідні дані
Перший рядок містить ціле число n (4 ≤ n ≤ 200 000) - кількість вершин багатокутника. Кожен з наступних n рядків містить координати вершин: пару цілих чисел x[i]
і y[i]
(-10^9
≤ x[i]
, y[i]
≤ 10^9
) у рядку.
Зазначений багатокутник є опуклим, а його вершини вказані в порядку обходу.
Вихідні дані
Виведіть одне ціле число w - кількість способів розрізати багатокутник правильним чином.