휴대전화는 근처의 이동통신 기지국(cell tower)에 연결하여 통신한다. 어느 순간에 여러 기지국이 통신 범위 안에 있을 수 있지만, 휴대전화는 신호가 가장 강한 기지국 하나에만 연결한다. 이 문제의 목표는 휴대전화를 가진 여행자를 추적하는 것이다. 도로 위의 각 마일 표지(mile marker)에서 휴대전화가 어떤 기지국을 사용하는지 판단하고, 그 기지국이 바로 이전 표지에서와 달라지는 지점을 모두 보고한다.
각 기지국의 위치는 임의의 원점을 기준으로 한 정수 X-Y 좌표(단위: 마일)로 주어지며, 세기(power) 값을 가진다. 여행자는 여러 개의 직선 구간을 끝과 끝으로 이어 붙여 만든 도로를 따라 이동하며, 이 도로는 스스로 교차하지 않는다. 마일 표지는 도로를 따라 1마일마다 놓이고, 출발점이 0번 마일 표지이다.
도로가 마지막 마일 표지보다 0.5마일 이상 더 이어진 뒤 끝난다면, 그 끝점에는 다음 마일 번호를 붙인다. 예를 들어 길이가 8.6마일인 도로의 끝점은 9번 마일이 되고, 길이가 8.2마일인 도로는 8번 마일 표지에서 끝난다.
세기가 $p$인 기지국이 어떤 표지로부터 거리 $d$만큼 떨어져 있다면, 그 표지에서의 신호 세기는 $p / d^2$을 가장 가까운 정수로 반올림한 값이다(정확히 0.5인 경우는 올림한다). 기지국이 마일 표지와 정확히 같은 위치에 놓이는 경우는 없다. 각 표지에서 휴대전화는 신호 세기가 가장 큰 기지국을 사용하며, 둘 이상이 같은 세기로 최대라면 알파벳 순서가 가장 앞선 기지국을 사용한다.
풀이 예시(세 개의 예제 입력에 대응):
입력은 하나 이상의 데이터 집합으로 이루어지며, 마지막에 0 하나만 있는 줄이 온다.
각 데이터 집합의 첫 줄에는 공백으로 구분된 두 정수 $T$와 $R$이 주어진다.
다음 $T$개의 줄에는 각각 한 기지국의 X좌표, Y좌표, 세기가 공백으로 구분되어 주어진다. 기지국에는 주어진 순서대로 'A', 'B', 'C', ... 라는 이름이 붙는다.
그다음 줄에는 도로를 정의하는 $R + 1$개 점의 좌표인 $2(R + 1)$개의 정수가 주어진다. 도로는 첫 번째 점에서 출발하여 나머지 점들을 순서대로 직선 구간으로 지난다.
모든 좌표는 0 이상 100 이하의 정수이고, 주어진 어떤 두 점도 같지 않다. 각 기지국의 세기는 1 이상 1,000,000 이하의 정수이다.
각 도로(데이터 집합)마다 한 줄을 출력한다. 그 줄은 공백 하나로 구분된 순서쌍들로 이루어진다. 각 순서쌍의 첫 번째 원소는 마일 표지 번호이고, 두 번째 원소는 그 표지에서 신호가 가장 강한 기지국의 이름(문자)이다. 0번 마일과, 가장 강한 기지국이 바로 이전 표지와 달라지는 모든 마일 표지에 대해 순서쌍을 출력한다. 각 순서쌍은 괄호로 감싸고 두 원소는 쉼표로 구분하며 괄호 안에는 공백을 넣지 않는다. 예: (5,B).