파일 업로드

울타리 제거

profile
실행 시간 제한메모리 제한
1 초128 MB
📃 해결할 문제

호탁은 자신의 강아지 베시가 너무 많은 문제를 일으키지 못하도록 긴 밧줄로 베시를 울타리에 묶어두기로 결정합니다. 위에서 보면 울타리는 수직선을 따라 배열된 N개의 기둥(1 <= N <= 10)으로 구성되며, 베시의 위치(bx, by)는 이 수직선의 오른쪽에 위치합니다. 호탁이 베시를 묶는 데 사용하는 밧줄은 M개의 선분(3 <= M <= 10,000)으로 설명되며, 첫 번째 선분은 베시의 위치에서 시작하고 마지막 선분은 베시의 위치에서 끝나는 시퀀스로 설명됩니다. 이 선분 중 어느 선분에도 울타리 기둥이 놓여 있지 않습니다. 그러나 선분은 교차할 수 있으며 여러 선분이 끝점에서 겹칠 수 있습니다.

다음은 위에서 본 장면의 예시입니다:

베시가 자유로울 수 있도록(즉, 밧줄이 울타리 기둥에 걸리지 않고 오른쪽으로 갈 수 있도록) 절단하여 제거해야 하는 울타리 기둥의 최소 개수를 구하십시오.

입력의 모든 (x,y) 좌표(울타리 기둥, 베시, 선분 끝점)는 0...10,000 범위 내에 있습니다. 모든 울타리 기둥의 x 좌표는 동일하며, bx는 이 값보다 큽니다.

💻 입력

1번째 줄 : 네 개의 공백으로 구분된 정수: N, M, bx, by.
2번째 줄..1+N번째 줄 : i+1번쨰 줄 에는 기둥 i의 x와 y 좌표가 공백으로 구분되어 있습니다.
2+N번째 줄..2+N+M번째 줄 : 이 M+1번째 줄 중 각각은 줄을 따라가는 포인트의 x와 y 좌표를 순서대로 포함하며, 첫 번째와 마지막 포인트는 항상 베시의 위치(bx, by)와 동일합니다.

🖨️ 출력

1번째 줄 : 베시가 오른쪽으로 가기 위해 제거해야 하는 기둥의 최소 개수.


💻 예제 입력 1
2 10 6 1
2 3
2 1
6 1
2 4
1 1
2 0
3 1
1 3
5 4
3 0
0 1
3 2
6 1
🖨️ 예제 출력 1
1

출처: USACO 2012 US Open, Gold Division Problem 1. Tied Down