정직한 관료 통치
면접 대비시간 제한1초메모리 제한1024 MB
금화 K개 이하로 나누되 기여도가 작은 관리일수록 적게 받게 하면서, 총애받는 관리 중 기여도가 가장 작은 사람이 최대한 많이 받도록 분배합니다.
문제
"이것을 관료주의라고 부른다."
"관료주의요?"
"그래. 모든 일은 서류를 채워서 해결되고, 그 서류는 관료라는 특별한 종족이 검토하지."
***
세르게이 루키야넨코, 『Недотёпа』
명랑왕 마르켈의 관리 명이 2층을 넘는 건물에 세금을 매기는 법안을 만들었다. 법안이 통과된 뒤 관리들에게는 예산 금화 개가 남았다. 관리들은 이 돈을 나눠 갖기로 했다. 왕에게는 정직한 관리만 있으므로 그들은 공정하게 나눈다. 관리 는 법안에 만큼 기여했다. 관리 가 개, 관리 가 개를 받을 때, 가 성립하는 것은 일 때뿐이다. 특히 기여도가 같은 관리는 같은 개수의 금화를 받아야 한다.
관리 중에는 왕의 총애를 받는 측근이 몇 명 있다. 명랑왕 마르켈은 측근 가운데 기여도가 가장 낮은 사람이 가능한 한 많은 돈을 받기를 원한다. 측근이 아닌 관리의 이익을 최대화할 필요는 없다.
입력
첫 줄에는 관리 수, 측근 수, 나눌 금화 수를 뜻하는 양의 정수 과 음이 아닌 정수 , 가 공백으로 구분되어 주어진다(, ). 둘째 줄에는 개의 양의 정수 ()가 주어지며, 는 번째 관리의 기여도다. 셋째 줄에는 서로 다른 양의 정수 개 ()가 주어지며, 이는 측근의 번호다.
출력
공정한 분배가 가능하면 첫 줄에 POSSIBLE을 출력한다. 둘째 줄에는 번째 관리가 받을 금화 수를 나타내는 음이 아닌 정수 개를 공백으로 구분해 출력한다. 모든 금화를 나눌 필요는 없다. 명랑왕 마르켈은 기여도가 가장 낮은 측근이 가능한 한 많은 금화를 받기만 바라고, 나머지 관리는 자유롭게 나눌 수 있다. 따라서 올바른 답이라면 어떤 것을 출력해도 된다. 공정한 분배가 불가능하면 IMPOSSIBLE을 출력한다.
힌트
일부 금화는 나눠지지 않고 남을 수 있다. 첫 번째 예시에서는 남은 금화를 두 번째와 다섯 번째 관리에게 줄 수도 있었지만, 그들은 측근이 아니므로 그럴 필요가 없다. 두 번째 예시에서는 올바른 분배에 금화가 최소 4개 필요한데, 남은 금화는 3개뿐이다.