아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

구름

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

요약
모든 구름이 같은 속도로 움직일 때 원점 위 수직 광선이 하나 이상의 구름과 만나는 시간 구간의 개수를 센다.
난이도

어려움10점 중 8점

유형
기하, 정렬, 구현, 구간
정답자
아직 제출이 없습니다

문제

하늘에 구름 nn개가 있다. 모든 구름은 같은 방향으로, 같은 일정한 속도 v=(vx,vy)v = (v_x, v_y)로 바람을 따라 움직인다. 즉, 임의의 실수 t≥0t \ge 0에 대해 처음 좌표가 (x,y)(x, y)인 구름의 한 점은 시각 tt에 (x+t⋅vx,  y+t⋅vy)(x + t \cdot v_x,\; y + t \cdot v_y)에 있다.

각 구름은 경계를 포함하는 다각형이며, 모든 꼭짓점의 좌표는 정수이다. 구름은 볼록하지 않아도 되지만, 어떤 두 변도 서로 교차하지 않는다(이웃한 두 변이 공유하는 끝점은 예외). 서로 다른 구름은 겹칠 수 있다.

지상의 (0,0)(0, 0)에는 위성 관제 센터가 있고, 그 바로 위(구름들보다 높은 곳)에 위성이 있다. 관제 센터에서 위성을 향해 수직 위로 레이저 빔을 쏘아 통신한다. 빔이 구름을 지나가는 동안에는 통신할 수 없다. 처음에는 빔이 어떤 구름도 지나가지 않는다. 구름이 흘러가면서 빔이 하나 이상의 구름을 지나 통신이 끊기는 순간이 여러 번 생길 수 있다. 빔이 구름의 꼭짓점 하나에만 닿더라도 그 순간 통신은 끊긴다.

모든 구름이 흘러가 사라질 때까지 통신이 몇 번 끊기는지 구하여라.

입력

첫째 줄에 정수 nn, vxv_x, vyv_y가 공백 하나로 구분되어 주어진다. 1≤n≤10001 \le n \le 1000, −109≤vx,vy≤109-10^9 \le v_x, v_y \le 10^9, v≠(0,0)v \ne (0, 0)이다. nn은 구름의 개수, v=(vx,vy)v = (v_x, v_y)는 속도 벡터이다. xx축은 서쪽에서 동쪽 방향, yy축은 북쪽에서 남쪽 방향이다.

다음 nn개의 줄에는 각 구름이 공백으로 구분된 정수열로 주어진다. 첫 정수는 꼭짓점의 개수 kk(3≤k≤10003 \le k \le 1000)이고, 이어서 2k2k개의 정수 x1,y1,x2,y2,…,xk,ykx_1, y_1, x_2, y_2, \ldots, x_k, y_k가 온다(−109≤xi,yi≤109-10^9 \le x_i, y_i \le 10^9). 점 (x1,y1),(x2,y2),…,(xk,yk)(x_1, y_1), (x_2, y_2), \ldots, (x_k, y_k)는 시계 방향으로 나열한 구름의 연속된 꼭짓점이다. 빔은 구름의 경계를 통틀어 최대 100 000100\,000번 지난다.

출력

통신이 끊기는 횟수를 정수 하나로 출력한다.

힌트

위에서 내려다본 구름

그림은 구름을 위에서 내려다본 모습이다. 점선은 레이저 빔이 지나갈 점들을 나타낸다.

예제1

  1. 예제 1

    입력
    4 -2 -1
    4 6 2 6 4 8 4 8 2
    4 2 3 1 -1 2 5 4 2
    3 -3 1 -1 2 -1 -1
    5 5 3 3 3 3 5 6 5 6 -1
    
    예상 출력
    3