두 관측자가 기록한 방향과 거리 범위를 모두 만족하도록 별을 배치할 수 있는지 판정하고, 가능하면 배치할 수 있는 별의 최대 개수를 구한다.
보통7기하구간그리디정렬아직 제출이 없습니다시간 제한2초메모리 제한128 MB코더스와 하이는 2차원 좌표평면에 사는 천문학자다. 코더스는 점 (xC,0)에, 하이는 점 (xH,0)에 가만히 서서 하늘, 즉 좌표평면에서 y>0인 부분에 떠 있는 별을 관측한다.
두 사람은 편의상 자신의 위치를 기준으로 삼아 하늘 위 점의 좌표를 (r,θ)로 적는다. r>0은 관측자와 점 사이의 직선 거리이고, 0∘<θ<180∘는 관측자와 점을 잇는 반직선을 x축의 양의 방향에서 반시계 방향으로 잰 각의 크기다.

관측자 기준으로 위 그림에 있는 별의 위치는 (5,65∘)다.
두 사람이 이렇게 번거로운 방식으로 위치를 적는 이유는 관측 장비의 한계에 있다. 장비는 관측자를 기준으로 한 별의 방향 θ는 정확히 알려주지만 별까지의 직선 거리 r은 알려주지 못한다. 대신 빛의 파형을 분석해 별이 있을 수 있는 거리의 범위만 알려준다. 즉 한 번의 관측으로 알 수 있는 사실은, 장비가 측정한 방향에서 장비가 측정한 거리 범위 안에 별이 적어도 하나 있다는 것뿐이다.

관측자는 자기 위치를 기준으로 별의 방향과 거리 범위만 측정한다.
두 사람은 이 한계를 잘 알기에 서로 협력해 관측 오차를 메우기로 했다. 두 사람은 각자 하늘에 있는 모든 광원을 관측해 결과를 기록했고, 이제 두 자료를 합쳐 별의 정확한 위치를 복원하려 한다. 다만 별이 있을 수도 있고 없을 수도 있는 자리에는 별이 떠 있다고 보아, 놓치는 별이 하나도 없게 하려 한다. 같은 좌표에 별은 최대 한 개만 있다.
코더스와 하이를 위해, 두 사람의 관측 자료를 모두 만족하도록 하늘 위 별의 위치를 복원할 수 있는지 판별하고, 복원할 수 있다면 두 사람이 복원한 별의 개수가 최대 몇 개인지 구하는 프로그램을 작성하라.
첫째 줄에 코더스와 하이가 서 있는 점의 위치를 나타내는 두 정수 xC와 xH (0≤xC<xH≤5000)가 공백을 사이에 두고 주어진다. 코더스는 (xC,0)에, 하이는 (xH,0)에 가만히 서 있다.
둘째 줄에 코더스의 관측 횟수 n (1≤n≤100000)이 주어진다.
이어지는 n개의 줄에 코더스의 관측 자료가 한 줄에 하나씩 주어진다. 각 줄에는 네 정수 θxC, θyC, sC, eC (−5000<θxC<5000, 0<θyC<10000, 0<sC≤eC<5000)가 공백을 사이에 두고 주어진다. 이는 코더스에서 별을 향하는 반직선의 방향 벡터가 (θxC,θyC)이고, 별과 코더스 사이의 직선 거리가 sC 이상 eC 이하라는 뜻이다.
그다음 줄에 하이의 관측 횟수 m (1≤m≤100000)이 주어진다.
이어지는 m개의 줄에 하이의 관측 자료가 한 줄에 하나씩 주어진다. 각 줄에는 네 정수 θxH, θyH, sH, eH (−5000<θxH<5000, 0<θyH<10000, 0<sH≤eH<5000)가 공백을 사이에 두고 주어지며, 뜻은 코더스의 자료와 같다.
관측 결과 하나는 관측자에서 뻗어 나가는 반직선 위에서 거리가 s 이상 e 이하인 선분이다. 코더스가 관측한 결과끼리는 서로 닿거나 겹치지 않는다. 하이가 관측한 결과끼리도 서로 닿거나 겹치지 않는다.
두 사람의 관측 자료를 모두 만족하도록 하늘 위 별의 위치를 복원할 수 있으면 첫째 줄에 두 사람이 복원한 별 개수의 최댓값을 출력한다. 복원할 수 없으면 -1을 출력한다.