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

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

양궁 대회

시간 제한3초메모리 제한512 MB

요약
지면에 접하는 원들을 동적으로 삽입하고, 화살이 명중한 원을 찾아 제거하며, 각 화살이 맞힌 원의 번호를 출력한다.
난이도

어려움10점 중 8점

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

문제

해마다 열리는 양궁 대회에 초대받았다. 북유라시아 전역에서 모인 최고의 궁수들과 겨루게 된다. 올해는 사대가 계속 변하는 새로운 방식이 도입되어, 새 과녁이 언제든지 나타난다.

사대는 충분히 멀리 떨어져 있어서 y=0y = 0이 지면인 2차원 평면으로 나타낼 수 있다. 과녁은 원 모양이고 모두 지면 위에 서 있다. 즉 과녁의 중심이 (x,y)(x, y)이면 (y>0y > 0) 반지름이 yy와 같아서 직선 y=0y = 0에 접한다. 같은 시각에 사대에 놓여 있는 두 과녁은 내부가 겹치지 않는다. 경계에서 접할 수는 있다.

처음에 사대는 비어 있다. 대회에서 당신이 하는 일은 nn개의 사건으로 기술된다. 각 사건은 사대에 새 과녁이 나타나는 사건이거나, 사대의 한 점으로 화살을 쏘는 사건이다. 과녁을 맞히려면 원의 내부를 엄밀하게 맞혀야 한다. 경계를 맞히면 명중이 아니다. 화살이 어떤 과녁을 맞히면 그 과녁은 사대에서 사라지고 1점을 얻는다.

입력

첫째 줄에 정수 nn이 주어진다 (1≤n≤2×1051 \le n \le 2 \times 10^5). 다음 nn개 줄에 대회에서 일어나는 사건이 일어난 순서대로 주어진다. ii번째 줄에는 정수 tit_i, xix_i, yiy_i가 주어진다 (ti=1t_i = 1 또는 ti=2t_i = 2, −109≤xi,yi≤109-10^9 \le x_i, y_i \le 10^9, yi>0y_i > 0).

  • ti=1t_i = 1이면 중심이 (xi,yi)(x_i, y_i)이고 반지름이 yiy_i인 새 과녁이 사대에 나타난다.
  • ti=2t_i = 2이면 화살을 쏘고, 화살은 사대의 점 (xi,yi)(x_i, y_i)에 맞는다.

출력

화살을 쏜 사건마다 한 줄에 정수를 하나씩 출력한다. 어떤 과녁도 맞히지 못했으면 -1을 출력한다. 과녁을 맞혔으면 그 과녁이 사대에 나타난 사건의 번호를 출력한다. 사건의 번호는 1부터 시작한다.

힌트

그림은 예제의 처음 여섯 사건이 끝난 뒤 사대의 상태다. 가장 오른쪽 과녁은 마지막 화살에 맞아 곧 사라진다.

예제1

  1. 예제 1

    입력
    8
    1 0 12
    2 -11 22
    1 24 10
    1 12 3
    2 12 12
    2 16 14
    1 28 15
    2 3 6
    
    예상 출력
    -1
    -1
    3
    1