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

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

불멸의 보석

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

요약
서로 겹치지 않는 원들이 주어질 때, 어떤 원도 관통하지 않으면서 각 원 i의 표면까지 거리가 m_i 이하가 되도록 무한 직선을 놓아 붙일 수 있는 원의 최대 개수를 구한다.
난이도

어려움10점 중 8점

유형
기하, 완전 탐색, 구현, 수학
정답자
아직 제출이 없습니다

문제

어느 귀족이 가난한 나라의 말괄량이 용감한 공주에게 반해 결혼을 신청했다. 공주는 귀족에게 조건을 하나 내걸었다. 그 조건은 "불멸의 보석"이라는 보석을 많이 가져오라는 것이었다. 불멸의 보석은 어느 산의 특정한 장소에서만 캘 수 있는 아주 희귀한 보석이다. 게다가 매우 잘 부서져서 캐려면 특별한 방법이 필요했다.

불멸의 보석은 원 모양이고, 2차원 공간에 여러 개가 있다. 이 보석을 캐려면 특별한 금속 막대로 보석을 끌어당겨야 한다. 금속 막대는 길이가 무한한 직선이고 두께는 무시할 수 있다. 보석은 저마다 다른 세기의 자기를 띠고 있으며, 금속이 그 자기력에 반응할 만큼 충분히 가까우면 보석이 달라붙는다. 구체적으로, 금속과 보석 표면 사이의 거리를 dd, 보석의 자기력 세기를 mm이라 할 때

0≤d≤m0 \le d \le m

이면 보석이 금속에 달라붙는다. 반대로 금속 막대와 보석이 자기력보다 멀리 떨어져 있으면 달라붙지 않는다. 또 막대가 보석을 조금이라도 관통하면 보석이 부서지므로 달라붙지 않는다.

예를 보자. 아래 그림은 2차원 공간에 놓인 보석의 예이다. 보석 1부터 보석 6까지 있고 자기력은 각각 1, 0, 1, 1, 1, 2이다.

그림 E-1: 보석의 배치 예

위 그림에 금속 막대를 배치한 예가 아래 그림이다. 보석을 달라붙인 결과도 표에 나타내었다. 이 예에서 보석 3은 자기력이 닿는 범위보다 멀리 떨어져 있고 보석 4는 막대에 관통되어 달라붙지 않지만, 나머지 4개는 모두 달라붙는다.

그림 E-2: 금속 막대의 배치 예

보석 이름자기력금속과의 거리달라붙는가
보석 11약 0.21달라붙는다
보석 200달라붙는다
보석 31약 5.37달라붙지 않는다
보석 41관통한다달라붙지 않는다
보석 51약 0.97달라붙는다
보석 62약 0.53달라붙는다

표 E-3: 달라붙은 결과

귀족은 전 재산을 쏟아부으며 특별한 금속 막대를 필사적으로 찾았다. 그러나 이 금속도 매우 귀해서 결국 한 개밖에 구하지 못했다. 따라서 달라붙일 기회는 딱 한 번뿐이다.

당신은 어느 귀족을 섬기는 프로그래머이다. 당신의 일은 주어진 2차원 보석 배치에 대해 금속 막대를 잘 배치했을 때 최대 몇 개의 보석을 달라붙일 수 있는지 구하는 프로그램을 작성하는 것이다.

입력

입력은 여러 데이터 세트로 이루어지고, 데이터 세트 하나는 다음 형식으로 주어진다.

N
x1 y1 r1 m1
x2 y2 r2 m2
...
xN yN rN mN

데이터 세트의 첫 줄은 보석의 수 NN (1≤N≤501 \le N \le 50)을 나타낸다. 이어지는 NN개 줄에는 정수 4개 xix_i, yiy_i, rir_i, mim_i (−1000≤xi,yi≤1000-1000 \le x_i, y_i \le 1000, 1≤ri≤1001 \le r_i \le 100, 0≤mi≤1000 \le m_i \le 100)가 적혀 있고, 보석의 위치, 크기, 자기력을 나타낸다. 즉 보석 ii는 중심이 (xi,yi)(x_i, y_i)이고 반지름이 rir_i인 원 모양이며, 자기력은 mim_i이다. 보석은 서로 겹치지 않는다.

입력의 끝은 0 하나로만 이루어진 줄로 나타낸다.

출력

각 데이터 세트마다 한 번에 달라붙일 수 있는 보석의 최대 수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    6
    -2 -2 1 1
    2 2 2 0
    5 7 1 1
    8 0 3 1
    13 4 1 1
    16 1 1 2
    3
    0 0 2 1
    10 0 2 1
    0 10 2 1
    3
    0 0 2 1
    10 0 2 1
    0 6 2 1
    3
    0 0 2 1
    10 0 2 1
    0 4 2 1
    1
    0 0 1 1
    0
    
    예상 출력
    4
    2
    3
    3
    1