밭 잔디 깎기
시간 제한5초메모리 제한512 MB
수평 구간과 수직 구간이 끝점이 아닌 점에서 만나고 자른 시점이 T일 이상 차이나는 교차점 개수를 구합니다.
문제
농부 존은 농장 일을 대체로 빈틈없이 해내지만 잔디 깎기만은 늘 늦는다. 잔디깎이를 하루에 한 번만 움직이기 때문이다. 1일째에 그는 에서 출발하고, 일째에는 전날 위치에서 까지 직선으로 잔디를 깎으며 이동한다. 농장을 2차원 평면으로 보면 이 이동은 항상 가로 또는 세로다. 즉 이거나 이다. 존은 가로 이동과 세로 이동을 하루씩 번갈아 한다.
진도가 워낙 느려서 먼저 깎은 잔디가 작업이 끝나기 전에 다시 자란다. 일째에 깎은 자리의 잔디는 일째에 되살아난다. 그래서 존의 경로가 일 이상 앞서 깎아 둔 경로와 만나면 같은 자리를 한 번 더 깎게 된다. 존은 자기 방식이 얼마나 나쁜지 확인하려고 이런 일이 몇 번 일어나는지 세려고 한다.
되살아난 잔디를 다시 깎게 되는 교차점의 개수를 세어라. 수직으로 만나는 경우만 센다. 즉 가로 선분과 세로 선분이 공유하는 점 중에서 두 선분 어느 쪽의 끝점도 아닌 점만 센다.
입력
첫째 줄에 ()과 (, 는 짝수)가 주어진다.
다음 개 줄에는 1일째부터 일째까지 잔디깎이의 위치가 주어진다. 번째 줄에는 정수 와 가 주어지며, 둘 다 이상 이하다.
연속한 두 위치가 같을 수도 있다. 그런 날의 이동은 한 점이므로 어떤 교차에도 관여하지 않는다.
출력
위에서 설명한 교차점의 개수를 출력한다.
힌트
첫 번째 예제에서 7일째 경로는 2일째에 깎은 선분과 만난다. 두 날의 간격이 이상이므로 이 교차는 개수에 들어간다. 나머지 두 교차는 간격이 3일뿐이라 세지 않는다.