문제
ANA 롤 내전에서 원거리 딜러를 맡은 혁준이는 시비르를 골랐다. 시비르의 주특기는 튕기는 부메랑(W) 공격을 통해 적 미니언(몬스터) 무리를 연쇄적으로 타격하여 빠르게 제거할 수 있다는 것이다.
치열한 교전을 치르던 혁준이는 급박한 상황 속에서 대충 눈앞에 보이는 미니언 중 아무거나 하나를 타격해놓고 곧바로 귀환을 누르기 시작했다.
현재 2차원 평면 격자 위에 마리의 적 미니언이 존재한다. 각 미니언은 부터 까지 순서대로 번호가 매겨져 있다. 혁준이가 최초로 타격한 미니언을 시작으로, 부메랑은 다음과 같은 규칙에 따라 미니언들 사이를 튕기며 피해를 준다.
- 타격 및 처치: 부메랑에 맞은 미니언은 즉시 처치되며 맵에서 사라진다. (즉, 한 번 맞은 미니언에게 다시 튕기지 않는다.)
- 튕기는 조건: 부메랑은 방금 처치한 미니언의 위치를 기준으로, 남은 미니언들 중 가장 가까운 미니언에게 튕겨 날아간다. 만약 가장 가까운 거리에 있는 미니언이 여러 마리라면, 번호가 더 작은 미니언으로 튕긴다.
- 사거리 제한: 단, 튕겨 날아갈 다음 미니언과의 거리가 사거리 이하일 때만 튕길 수 있다. 보다 멀리 떨어져 있으면 부메랑은 즉시 공격이 종료되고, 그자리에서 소멸한다. (거리는 유클리드 거리 를 사용한다.)
대충 스킬을 던져놓고 상점에 갈 생각에 신난 혁준이를 위해, 이 부메랑이 소멸하기 전까지 총 몇 마리의 미니언을 처치하게 될지 계산해 주자.
시비르의 직접 공격의 사거리는 무한하다.
입력
첫째 줄에 미니언의 수 과 부메랑의 최대 튕김 사거리 이 공백으로 구분되어 주어진다. (; )
둘째 줄부터 개의 줄에 걸쳐 번 줄에는 번 미니언의 위치 좌표 가 공백으로 구분되어 주어진다. ( )
마지막 줄에는 혁준이가 최초로 타격한 미니언의 번호 가 주어진다. ( )
모든 미니언의 위치는 서로 다르며 입력으로 주어지는 수는 모두 정수다.
출력
첫째 줄에 한 번의 스킬 사용으로 처치할 수 있는 총 미니언의 수를 출력한다.
예제 입력 1
5 5
0 0
0 4
3 4
3 10
7 4
1
예제 출력 1
4
(0, 0)을 첫 타겟으로 지정하면, 거리가 4인 (0, 4)로 튕긴다. 그 후 거리가 3인 (3, 4)로 튕기고, 다시 거리가 4인 (7, 4)로 튕긴다. (3, 10)은 (7, 4)와의 거리가 7.21로 사거리 5를 초과하므로 튕기지 못한다. 따라서 총 4마리를 처치할 수 있다.
예제 입력 2
5 2
0 0
1 1
2 2
3 3
4 4
2
예제 출력 2
2
(1, 1) 미니언은 (0, 0) 미니언과의 거리와 (2, 2) 미니언과의 거리가 서로 같다. 거리가 동률일 땐 먼저 입력 받은 미니언 부터 처치해야 하므로 (0, 0) 미니언을 처치하고, 부메랑은 (2, 2) 미니언에 닿지 못하고 소멸한다.
- 문제를 만든 사람
- 박종현
- 알고리즘 분류
코드를 제출하려면 로그인이 필요합니다.
로그인| # | 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 | |
|---|---|---|---|---|---|---|---|
| 7376 | 🥇 | Flying_Spaghetti_Monster | C++ | 1ms | 1216KB | 977B | |
| 7518 | 🥈 | Fine_Tuning | C++ | 18ms | 1212KB | 1784B | |
| 8275 | 🥉 | 박종현 | PyPy | 49ms | 57472KB | 918B | |
| 7750 | 4 | 코요태 | PyPy | 51ms | 57508KB | 540B | |
| 8028 | 5 | 나여 | Java | 63ms | 37832KB | 2037B | |
| 8442 | 6 | 안우진 | Python | 99ms | 8804KB | 696B | |
| 7838 | 7 | Team_Choi | PyPy | 139ms | 64068KB | 678B | |
| 8235 | 8 | 이일우 | PyPy | 139ms | 64248KB | 678B | |
| 7976 | 9 | 진하김 | Java | 206ms | 45100KB | 2280B |