밧줄에 묶인 베시

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

문제

젖소 베시는 농장에서 말썽을 부리는 것을 세상에서 가장 좋아한다. 베시가 지나치게 사고를 치지 못하도록, 농부 존은 긴 밧줄로 베시를 울타리에 묶어 두기로 했다.

위에서 내려다보면, 울타리는 하나의 수직선 위에 놓인 $N$개의 기둥($1 \le N \le 10$)으로 이루어져 있고, 베시는 이 수직선의 오른쪽에 있는 위치 $(bx, by)$에 서 있다. 밧줄은 $M$개의 선분($3 \le M \le 10000$)의 나열로 주어진다. 첫 번째 선분은 베시의 위치에서 시작하고 마지막 선분은 베시의 위치에서 끝나므로, 밧줄은 하나의 닫힌 고리를 이룬다. 어떤 기둥도 선분 위에 놓여 있지 않지만, 선분끼리는 서로 교차할 수 있고 끝점을 공유할 수도 있다.

베시를 탈출시키기 위해, 다른 소들이 헛간에서 톱을 가져왔다. 베시가 밧줄에서 풀려나 — 즉 남은 어떤 기둥에도 밧줄이 걸리지 않고 오른쪽으로 달아날 수 있으려면 — 잘라서 없애야 하는 기둥의 최소 개수를 구하라.

모든 기둥의 $x$좌표는 같으며, $bx$는 그 값보다 크다(기둥들의 오른쪽에 위치). 모든 좌표(기둥, 베시, 각 선분의 끝점)는 $0 \le x, y \le 10000$ 범위의 정수이다.

입력

  • 첫째 줄: 공백으로 구분된 네 정수 $N$, $M$, $bx$, $by$.
  • 다음 $N$개의 줄: $i+1$번째 줄에는 $i$번째 기둥의 $x$좌표와 $y$좌표가 공백으로 구분되어 주어진다.
  • 다음 $M+1$개의 줄: 각 줄에는 밧줄 위의 점의 $x$좌표와 $y$좌표가 순서대로 공백으로 구분되어 주어진다. 이 점들 중 첫 번째와 마지막은 모두 베시의 위치 $(bx, by)$와 같다.

출력

  • 베시가 오른쪽으로 달아나 탈출할 수 있도록 없애야 하는 기둥의 최소 개수를 정수 하나로 출력한다.

힌트

기둥 하나는 밧줄이 실제로 그 기둥을 감고 있을 때에만 베시를 붙잡는다. 그러나 여러 기둥은 밧줄이 각각의 기둥을 하나도 감고 있지 않더라도 함께 베시를 가둘 수 있다. 밧줄이 기둥들 사이를 왔다 갔다 하며 얽힐 수 있기 때문이다. 따라서 답은 단순히 밧줄이 감고 있는 기둥의 개수가 아니다. 밧줄 고리 전체가 오른쪽으로 풀려날 수 있게 만드는, 없애야 하는 가장 작은 기둥 집합을 찾아야 한다.