만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

정수 면적으로 자르기

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

요약
정수 좌표를 가진 볼록 다각형에서 두 조각의 넓이가 모두 정수가 되는 대각선의 개수를 센다.
난이도

보통10점 중 7점

유형
기하, 수학, 투 포인터, 누적 합
정답자
아직 제출이 없습니다

문제

잉그리드는 볼록 다각형을 파는 가게를 한다. 가게에 있는 다각형은 꼭짓점 좌표가 모두 정수다.

손님이 좋아하는 다각형은 다음 조건을 만족하도록 두 조각으로 자를 수 있는 다각형이다.

  • 자르는 선은 다각형의 두 꼭짓점을 잇는 선분이다.
  • 두 조각 모두 비어 있지 않다. 즉 선분의 양 끝 꼭짓점은 서로 인접하지 않는다.
  • 두 조각의 면적이 둘 다 정수다.

조건을 만족하는 절단 방법이 많을수록 다각형 값이 비싸진다. 아래 그림에서 왼쪽 다각형은 세 가지, 오른쪽 다각형은 두 가지 방법으로 자를 수 있다.

가게가 커지면서 잉그리드는 다각형마다 값을 매기는 데 시간을 너무 많이 쓴다. 다각형의 꼭짓점 좌표를 읽어 조건을 만족하는 절단 방법의 수를 세는 프로그램을 만들어 잉그리드를 도와라.

입력

첫째 줄에 다각형의 꼭짓점 개수 nn이 주어진다 (4≤n≤200 0004 \le n \le 200\,000).

다음 nn개 줄에는 꼭짓점의 좌표 xix_i와 yiy_i가 한 줄에 하나씩 주어진다 (−109≤xi,yi≤109-10^9 \le x_i, y_i \le 10^9). 좌표는 모두 정수다.

주어지는 다각형은 볼록이고, 꼭짓점은 둘레를 따라가는 순서로 주어진다. 연속한 세 꼭짓점이 한 직선 위에 있는 경우는 없다.

출력

조건을 만족하는 절단 방법의 수 ww를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    5
    7 3
    3 5
    1 4
    2 1
    5 0
    
    예상 출력
    3
    
  2. 예제 2

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