최대 10만 개의 선분이 작고 서로 겹치지 않는 격자 원 중 몇 개를 통과하는지 셉니다.
보통7기하행렬아직 제출이 없습니다시간 제한10초메모리 제한512 MB북극 가까운 곳, 얼어붙은 호수 위에 세워진 어촌 마을이 지구 온난화로 위험에 빠졌다. 호수 표면에 균열이 생기기 시작한 것이다. 마을은 구 모양의 이글루 n개로 이루어져 있고, 이글루 하나는 호수 표면에서 원 모양 영역을 차지한다.
이글루는 좌표평면 위의 원으로 나타낼 수 있다. 원의 중심은 좌표가 정수인 점이고, 반지름은 소수점 아래가 정확히 한 자리이며 1보다 작은 양의 실수이다.
균열이 생길 수 있는 위치가 주어지면, 마을 사람들은 균열마다 이글루 몇 개가 영향을 받는지 알고 싶어 한다. 다시 말해 두 끝점으로 정해지는 선분이 질의로 q개 주어질 때, 선분마다 그 선분과 만나는 이글루의 개수를 구한다. 선분이 원의 내부와 적어도 한 점을 공유하면 그 선분은 이글루와 만난다.
첫째 줄에 이글루의 개수 n (1≤n≤100000)이 주어진다. 다음 n개 줄에는 각각 이글루 하나의 중심 좌표 x, y와 반지름 r이 주어진다. x와 y는 1≤x,y≤500인 정수이고, r은 0<r<1이면서 소수점 아래가 정확히 한 자리인 실수이다. 어떤 두 이글루도 서로 겹치거나 접하지 않는다.
다음 줄에 질의의 개수 q (1≤q≤100000)가 주어진다. 다음 q개 줄에는 각각 선분의 두 끝점 좌표 x1, y1, x2, y2 (1≤x1,y1,x2,y2≤500)가 정수로 주어진다. 두 끝점은 서로 다르다. 끝점이 이글루 내부에 있을 수도 있다.
모든 이글루 i와 모든 선분 s에서, s와 i의 중심 사이 거리의 제곱은 r2−10−5보다 작거나 r2+10−5보다 크다. 여기서 r은 이글루 i의 반지름이다.
q개 줄을 출력한다. k번째 줄에는 k번째 선분과 만나는 이글루의 개수를 출력한다.
