경로 위 마커에 서 있는 등산객들이 이웃 간 거리는 B 이하, 개인 공간은 서로 지키며 한 명씩 앞 마커로 이동해야 한다. 모두가 끝에 도달하는 사전순으로 가장 작은 이동 순서를 출력하고, 불가능하면 impossible을 출력한다.
어려움8그리디시뮬레이션구현아직 제출이 없습니다시간 제한4초메모리 제한512 MB한 산악회가 코스 하나에서 기록 경기를 연다. 코스에는 표지점이 P개 있고, i번 표지점은 출발점에서 di미터 떨어져 있으며 d1=0이다. 이 종목에서 오래 걸리는 일은 길을 찾는 작업뿐이라, 다음에 어디로 갈지만 알면 이동 자체는 순식간에 끝난다.
지금 코스에는 등산객이 K명 있다. i번 등산객은 Vi번 표지점에 서 있고, 개인 공간으로 Ai미터가 필요하다. 어느 순간에나 다음 두 규칙이 성립한다.
등산객은 한 번에 한 명씩 움직인다. 한 번의 이동은 한 사람을 지금 서 있는 표지점에서 다음 표지점으로 옮기고 순식간에 끝나므로, 표지점 사이에 머무는 사람은 없다. 이동이 끝날 때마다 두 규칙이 다시 성립해야 한다.
P번 표지점에 닿은 등산객은 코스를 완주하고 곧바로 빠져나간다. 그 순간부터 두 규칙은 그 사람을 무시하므로, P번 표지점으로 가는 이동은 언제나 허용된다. 처음부터 P번 표지점에 서 있는 등산객은 이미 완주한 상태이고 한 번도 움직이지 않는다.
모두가 코스를 완주하도록 움직이는 순서를 구하라.
처음 배치는 두 규칙을 모두 만족한다. P번 표지점에서 시작하는 등산객은 이미 완주했으므로 이 판정에서 빠진다.
규칙을 어기지 않고는 모든 등산객을 P번 표지점까지 보낼 수 없으면 impossible을 출력한다.
보낼 수 있으면 움직이는 순서대로 등산객 번호를 한 줄에 공백 하나로 구분해 출력한다. 올바른 답의 길이는 항상 ∑i=1K(P−Vi)로 같으니, 그중 사전순으로 가장 작은 답을 출력한다. 두 답은 앞에서부터 한 자리씩 비교하고, 처음으로 달라지는 자리의 번호가 작은 쪽이 사전순으로 앞선다.