농부의 밭

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

바이트랜드는 가로 aa미터, 세로 bb미터인 직사각형이다. 농부 바이트아사르의 밭은 단위 정사각형들로 이루어져 있다. 각 가로줄(층)에서 밭에 속한 칸들은 하나의 연속된 구간을 이루지만, 밭 전체가 위아래로 이어져 있을 필요는 없다.

바이트랜드의 왕은 모든 농부에게 단위 정사각형으로 이루어진 가로 cc미터, 세로 dd미터의 직사각형 영역을 바치라는 명령을 내렸다. 이 직사각형은 두 방향 중 하나로 놓을 수 있어서 cc개의 열과 dd개의 행을 차지하거나 dd개의 열과 cc개의 행을 차지하며, 밭 안에 완전히 들어가야 한다. 위치는 왕이 고른다. 바이트아사르는 가능한 위치가 많아서 욕심 많은 왕이 쉽게 결정하지 못하기를 바란다.

왕이 고를 수 있는 위치의 수, 즉 요구된 직사각형을 (두 방향 중 어느 쪽으로든) 밭 안에 완전히 놓을 수 있는 방법의 수를 구하여라. 두 배치가 정확히 같은 칸 집합을 덮을 때에만 같은 위치로 보므로, c=dc = d이면 두 방향은 서로 겹쳐 한 번만 센다.

다음을 수행하는 프로그램을 작성하여라.

  • 바이트아사르의 밭에 대한 설명과 왕이 요구한 영역의 크기를 입력받는다.
  • 그 영역을 밭 안에 놓을 수 있는 위치의 수를 계산한다.
  • 답을 표준 출력에 쓴다.

입력

첫째 줄에 네 정수 aa, bb, cc, dd가 주어진다 (1a,b,c,d5,000,0001 \le a, b, c, d \le 5{,}000{,}000). 각각 바이트아사르 밭의 가로와 세로, 그리고 왕이 요구한 영역의 가로와 세로이다.

이어지는 bb개의 줄에는 밭의 각 가로줄이 위에서부터 차례로 두 정수 xxll로 주어진다 (1xa1 \le x \le a, 0la0 \le l \le a, x+la+1x + l \le a + 1). 그 줄에서 밭은 바이트랜드의 왼쪽 경계에서 x1x - 1미터 떨어진 곳부터 시작하여 연속된 ll개의 단위 정사각형을 차지한다. 즉 xx열부터 x+l1x + l - 1열까지 차지한다. l=0l = 0이면 그 줄에는 밭 칸이 하나도 없다.

출력

한 정수를 출력한다. 가로 cc, 세로 dd인 직사각형을 (두 방향 중 어느 쪽으로든) 바이트아사르의 밭 안에 완전히 놓을 수 있는 위치의 수이다.

힌트

그림은 예제 입력이 나타내는 밭을 보여 준다. 진한 색 칸이 밭에 속한다.

C++를 사용한다면 데이터 크기가 크므로 STL 컨테이너 사용에 주의하여라. 잘못 사용하면 시간이나 메모리 제한을 초과할 수 있다.