교준이의 심부름꾼, 민제의 고충 ("Circle" Ver.)
시간 제한4초메모리 제한1024 MB
서로 겹치지 않는 원들과 집들이 주어질 때, 각 질의마다 점에서 원을 건너는 횟수가 L 이하인 집들의 C 값 XOR을 구합니다.
문제
민제는 교준이가 통치하는 도시, 강민시(市)에서 살고 있다.
2차원 평면인 이 도시에는 중심이 이고 반지름이 인 원이 개 있다. 어떤 두 원도 같은 점을 공유하지 않는다.
또한 강민시에는 민제네 집이 채 있다. 번째 집의 위치는 이며, 이 집을 부수면 교준이는 행복도 를 얻는다. 집의 위치나 행복도는 서로 같을 수 있으나, 어떤 집도 원 위에 있지 않다.
행복도의 정의는 조금 특이하다. 어떤 집도 부숴지지 않았다면 교준이의 행복도는 이다. 행복도가 인 집과 인 집이 부숴졌다면 교준이는 의 행복도를 얻는다. 즉, 행복도가 인 집 채가 부숴졌다면 교준이가 얻는 총 행복도는 다. 이때 는 배타적 논리합(XOR)을 나타낸다.
민제네 집은 미관상 좋지 못하다. 강민시장 교준이는 강민시를 현대도시로 발전시키려면 민제네 집을 모두 부숴야 한다고 생각한다. 또한 교준이는 매우 악랄하기 때문에 민제에게 직접 집을 철거하라고 명령할 것이다.
교준이가 민제에게 "로 가서 거리 이내에 있는 너네 집을 모두 부숴라."라고 명령하면, 민제는 위치로 이동한 다음, 이 점으로부터 거리가 이하인 모든 민제네 집을 직접 부순다. 이때 두 점 사이의 거리는 한 점에서 다른 점으로 이동하기 위해 지나야 하는 원의 최소 개수를 뜻한다. 점 가 원 위에 있지 않음은 항상 보장된다.
교준이는 다음과 같은 궁금증이 생겼다. 민제에게 "로 가서 거리 이내에 있는 너네 집을 모두 부숴라."라고 명령하고, 다시 "로 가서 거리 이내에 있는 너네 집을 모두 부숴라."라고 명령하고, 이런 식으로 총 차례 명령한다면 교준이가 얻는 총 행복도는 얼마일까?
민제는 수학을 못하므로, 교준이의 질문에 답해주는 프로그램이 필요하다.
개의 궁금증은 서로 독립임에 유의하라. 또한 하나의 궁금증에서 민제는 같은 집을 두 번 이상 부수지 않는다.
입력
첫 번째 줄에는 원의 개수 , 민제네 집의 수 , 궁금증의 횟수 가 공백으로 구분되어 주어진다.
두 번째 줄부터 개의 줄에 걸쳐 각 원의 정보 , , 가 공백으로 구분되어 주어진다.
번째 줄부터 개의 줄에 걸쳐 각 집의 정보 , , 가 공백으로 구분되어 주어진다.
번째 줄부터 개의 궁금증이 주어진다. 하나의 궁금증은 여러 줄에 걸쳐 표현된다. 첫 줄에는 민제에게 내리는 명령의 횟수 가 주어지고, 이어지는 개의 줄에 각 명령의 , , 가 공백으로 구분되어 주어진다.
개의 궁금증은 서로 독립이다. 또한 하나의 궁금증에서 민제는 같은 집을 두 번 이상 부수지 않는다.
출력
첫 번째 줄부터 개의 줄에 걸쳐 각 궁금증에 대해 교준이가 얻는 행복도를 차례대로 출력한다.
제한
- 개의 궁금증의 들의 합은 을 넘지 않는다.
- ()
- ()
- ()
- 번째 원과 번째 원은 서로 같은 점을 공유하지 않는다 ().
- ()
- ()
- ()
- 번째 원 위에 점 가 존재하지 않는다 (, ).
- 각 궁금증에 대하여, ()
- 각 궁금증에 대하여, ()
- 각 궁금증에 대하여, ()
- 각 궁금증에 대하여, 번째 원 위에 점 가 존재하지 않는다 (, ).