마인 크래프트 재고 관리는 어렵습니다. 17 개의 다이아몬드가 있지만 마법 부여 테이블, 곡괭이 및 칼을 만들려면 7이 필요합니다. 당신은 그들을 픽업하고 마우스 오른쪽 버튼을 7 번 클릭합니까? 또는 마우스 오른쪽 버튼을 한 번 클릭하고 마우스 오른쪽 버튼을 두 번 클릭하고 7을 왼쪽으로 가져 갑니까? 너무 혼란 스러워요!
지금 혼란스러워하는 사람들을 위해 걱정하지 마십시오. 모든 것을 잠시 후에 설명하겠습니다.
도전
항목 스택의 크기와 원하는 금액이 주어지면 해당 금액을 얻을 수있는 최소 클릭 수를 결정하십시오. 두 입력에 대해 최대 64 개만 처리하면되며 무한 재고 슬롯이 있다고 가정 할 수 있습니다. 끌어서 놓기 트릭을 사용할 수 없습니다.
정의
재고는 당신이 항목을 저장할 수있는 슬롯의 모음입니다.
슬롯은 이 항목의 한 종류까지 배치 할 수 있습니다 인벤토리에 저장 공간입니다.
스택은 동일한 그룹에 배치 된 아이템들의 수이다. 이 문제를 해결하기 위해 스택은 단순히 같은 장소에있는 여러 항목입니다 (스택 크기 무시)
커서가 당신의 뾰족한 꼬추입니다. 그 커서. "그 위에"항목이있을 수 있습니다. 다른 말로하면, 슬롯을 클릭하고 아이템을 픽업하면 픽업 한 아이템은 내려 놓을 때까지 "커서 상에"있습니다.
명세서
네 가지 가능한 상황이 있습니다. 커서에 항목이 있거나없는 상태에서 마우스 왼쪽 단추를 클릭하거나 마우스 오른쪽 단추를 클릭하십시오.
커서에 항목이없고 슬롯을 마우스 왼쪽 버튼으로 클릭하면 전체 스택을 가져옵니다.
커서에 아이템이없고 슬롯을 마우스 오른쪽 버튼으로 클릭하면 스택의 절반을 반올림합니다.
커서에 항목이 있고 슬롯을 마우스 왼쪽 단추로 클릭하면 모든 항목이 해당 슬롯에 배치됩니다. (마인 크래프트 플레이어에게는이 챌린지에 대해> 64 개 이상의 아이템이없고 모두 64 개 스택 가능하며 한 가지 유형 만 있으므로 아이템 스왑이 여기에 적용되지 않습니다)
커서에 항목이 있고 슬롯을 마우스 오른쪽 버튼으로 클릭하면 해당 항목을 하나의 슬롯에 넣습니다.
따라서 슬롯에 주어진 모든 항목 (첫 번째 입력 또는 두 번째; 순서를 선택할 수 있음)으로 시작하고 커서에 원하는 양 (다른 입력)을 갖는 것으로 끝내기를 원합니다.
예를 들어 봅시다. 17 개의 항목으로 시작하여 7을 원한다고 가정하십시오. 먼저, 스택을 마우스 오른쪽 버튼으로 클릭하면 9 개를 선택하고 해당 슬롯에 8 개가 있음을 의미합니다. 그런 다음 스택을 다시 마우스 오른쪽 버튼으로 클릭하면 하나의 항목을 슬롯에 다시 배치하여 8과 9를 남깁니다. 마지막으로 다시 마우스 오른쪽 버튼을 클릭하면 7과 슬롯이 10이됩니다. 3
(클릭 수)를 반환 합니다.
out-click-golf me를 관리하는 경우 알려주십시오. 예를 편집하겠습니다 .P
테스트 사례
이들은 수동으로 생성되므로 오류가 있는지 알려주십시오. 지터를 마우스 오른쪽 버튼으로 클릭하여 재고 관리를 수행하므로 최적의 재고 관리 경험이 없습니다 .P
Given, Desired -> Output
17, 7 -> 3
64, 8 -> 5
63, 8 -> 5
10, 10 -> 1
10, 0 -> 0 # note this case
25, 17 -> 7
설명
이 도전은 마인 크래프트가 아닌 플레이어에게는 까다로울 수 있습니다. 다음은 몇 가지 설명입니다.
64, 8 -> 5
마우스 오른쪽 버튼을 사용하여 32 개를 집어 올린 후 내려 놓고 16 번 집어 들어 올린 다음 8 번 집어 올립니다.
63, 8 -> 5
같은 이유로.
25, 17 -> 7
13을 집어 들고 내려 놓고 남은 12 개에서 6 개를 집어 들고 2를 다시 남은 스택에 놓은 다음 커서에 4를 13에 놓고 집어 올립니다.
규칙
- 표준 허점 적용
- 당신은 가정 할 수 있습니다
0 <= desired <= given <= 64
- 순서에 상관없이 입력을 받고 합리적인 형식으로 I / O를 수행 할 수 있습니다.
0,[n]
, 전이 할 수있다 : 1로부터 0,[a,b,...]
행을 a,[b,...]
, b,[a,...]
, ceil(a/2),[floor(a/2),b,...]
, 또는 ceil(b/2),[a,floor(b/2),...]
; 또는 (2)로부터 x,[a,b,...]
( x>0
)에 x-1,[a+1,b,...]
, x-1,[a,b+1,...]
, x-1,[a,b,...,1]
, 0,[a+x,b,...]
, 0,[a,b+x,...]
, 0,[a,b,...,x]
. 문제는 0,[g]
g가 주어진 t,L
곳 t
에서 원하는 목표가 있는 곳 으로 그리고 L
목록이있는 곳으로 가능한 최소 전이를 찾는 것입니다 .