실린더
시간 제한1초메모리 제한128 MB
같은 눈금 n개가 표시된 두 실린더가 비어 있는 상태에서 시작해, 채우기, 버리기, 붓기 동작만으로 한 실린더에 정확히 l밀리리터를 남기는 최소 동작 수를 구하거나 불가능하면 NIE를 출력한다.
문제
Byteasar는 정확히 밀리리터의 물을 재야 하지만, 구할 수 있었던 것은 결함이 있는 완전히 똑같은 실린더 두 개뿐이었다. 각 실린더의 용량은 밀리리터이며, 두 실린더 모두 똑같이 (밀리리터) 위치에만 눈금이 새겨져 있다. 수면의 높이는 이 눈금 위치에서만 읽을 수 있다.
두 실린더는 처음에 모두 비어 있다. 한 번의 동작(모두 같은 시간이 걸린다)으로 다음 중 하나를 할 수 있다.
- 수도꼭지로 한 실린더에 물을 채워, 그 실린더의 눈금 중 하나에 수면이 닿을 때까지 채운다;
- 한 실린더의 물을 싱크대에 버려, 그 실린더의 눈금 중 하나에 수면이 닿을 때까지 버린다;
- 한 실린더에서 다른 실린더로 물을 옮겨, 옮기는 쪽(원본) 실린더의 수면이 그 눈금 중 하나에 닿을 때까지 옮긴다;
- 한 실린더에서 다른 실린더로 물을 옮겨, 받는 쪽(대상) 실린더의 수면이 그 눈금 중 하나에 닿을 때까지 옮긴다.
실린더 사이의 이동은 받는 쪽이 넘치지 않을 때만 가능하다. 두 실린더 중 하나에 정확히 밀리리터의 물을 담기 위해 필요한 최소 동작 횟수를 구하거나, 불가능함을 판별하여라.
입력
첫째 줄에 각 실린더의 눈금 개수 ()이 주어진다.
둘째 줄에 눈금 값을 나타내는, 엄격히 증가하는 정수 수열 이 공백 하나로 구분되어 주어진다. 이고 ()은 각 실린더의 용량과 같음이 보장된다.
셋째 줄에 재려는 물의 양 ()이 주어진다.
출력
Byteasar가 정확히 밀리리터를 잴 수 없다면 NIE라는 단어를 한 줄에 출력한다. 그렇지 않으면 필요한 최소 동작 횟수를 정수 하나로 출력한다.