| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 2.953 초 | 589 MB | 280 | 39 | 22 | 11.168% |
이 문제는 비적응적 인터랙티브 문제입니다.
달의 광산 한복판에서 돌을 캐면서 끝없는 도전 과제를 깨는 초특급 광산 시뮬레이터! 이건 그저 광(鑛)부의 꿈이 아닙니다! 당신은 이제 단단한 바위 속에서 반짝이는 돌을 캐며, 도전 과제 10개를 노리는 진정한 광(狂)부가 될 수 있습니다!
입구에서 곡괭이를 휘두르면, 지하 깊숙이 숨겨진 돌이 빛을 발합니다. 하지만 조심하세요, 이건 단순히 돌을 깨부수는 일이 아닙니다! 돌 속에 숨겨진 재치 있는(?) 사건들이 당신을 기다리고 있습니다. 어떤 돌은 돈을 주고, 어떤 돌은 강화석을 주고, 어떤 돌은… 글쎄, 아무것도 안 줍니다. 웃기지 않나요?
곡괭이 강화를 통해 우주 최강 채광 능력을 얻고 싶으신가요? 도전 과제 10개를 모두 달성해서 끝판왕이 되고 싶으신가요?
그렇다면 이 게임이야말로 당신을 위한 것입니다. 웃음과 헛수고가 가득한 광산 모험, 지금 바로 곡괭이를 들고 뛰어드세요!
- Lunatic Mine 광고
Lunatic Mine 게임에는 두 종류의 재화가 있습니다! 루나🌙와 강화석💎이죠! 루나는 이 게임에서 통용되는 화폐라고 보아도 무방합니다. 반면에 강화석은 여러분의 곡괭이⛏를 좀 더 강화하기 위해 필요한 재화입니다. 강화할 곡괭이가 어떻게 되어 있는지 한번 살펴보시죠! 편의상 2ドル^{63} - 1$의 값을 $\text{INF}$로 정의하겠습니다.
여러분은 강화한 곡괭이로 채광을 할 수 있습니다. 채광하면 곡괭이 강화 상태에 따라서 루나와 강화석을 얻을 수 있습니다. 채광으로 얻은 재화로 곡괭이 강화에 다시 투자해 지속적으로 곡괭이 능력치를 올리는 것이 가능하죠. 곡괭이로 가능한 행동은 총 6가지입니다. 여러분은 명령어를 통해 아래 행동을 취할 수 있습니다.
mine)
equip)
smelt)
craft)
rank_up)
enchant)
좋습니다. 그러면 시스템 흐름을 요약해 봅시다.
이제 세부적인 사항에 대해서 살펴봅시다.
이 게임에서는 유사 난수 생성기를 활용합니다. 따라서 시드와 명령어 순서만 알고 있다면, 항상 같은 결과를 얻을 수 있습니다!
equip $x$ : $x$번째 곡괭이를 장착합니다.1 : 장착에 성공한 경우 반환합니다.이제 여러분은 이 게임을 즐길 준비가 된 겁니다! 한번 강화 시스템들도 하나씩 알아보죠. 다음은 제련 시스템[🔨] 입니다!
제련
| 강화 전 | 강화 후 | 비용 | 성공 확률 | 최소 루나 | 최대 루나 | 일반 강화석 드랍률 | 달빛 | 레어 강화석 드랍률 | 에픽 강화석 드랍률 | 유니크 강화석 드랍률 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | 0레벨 | - | - | 1 | 100 | - | - | - | - | - |
| 0 레벨 | 1 레벨 | 1000 루나 | 100.00% | 100 | 200 | - | - | - | - | - |
| 1 레벨 | 2 레벨 | 2000 루나 | 95.00% | 200 | 400 | - | - | - | - | - |
| 2 레벨 | 3 레벨 | 3000 루나 | 90.00% | 300 | 600 | - | - | - | - | - |
| 3 레벨 | 4 레벨 | 4000 루나 | 85.00% | 400 | 800 | - | - | - | - | - |
| 4 레벨 | 5 레벨 | 5000 루나 | 80.00% | 500 | 1000 | - | - | - | - | - |
| 5 레벨 | 6 레벨 | 6000 루나 | 80.00% | 600 | 1200 | 1% | - | - | - | - |
| 6 레벨 | 7 레벨 | 7000 루나 | 80.00% | 700 | 1400 | 2% | - | - | - | - |
| 7 레벨 | 8 레벨 | 8000 루나 | 80.00% | 800 | 1600 | 3% | - | - | - | - |
| 8 레벨 | 9 레벨 | 9000 루나 | 80.00% | 900 | 1800 | 4% | - | - | - | - |
| 9 레벨 | 10 레벨 | 10000 루나 | 80.00% | 1000 | 2000 | 5% | - | - | - | - |
| 10 레벨 | 11 레벨 | 11000 루나 | 70.00% | 1200 | 2400 | 7% | 100 | - | - | - |
| 11 레벨 | 12 레벨 | 12000 루나 | 60.00% | 1500 | 3000 | 9% | 200 | - | - | - |
| 12 레벨 | 13 레벨 | 13000 루나 | 50.00% | 1900 | 3800 | 11% | 300 | - | - | - |
| 13 레벨 | 14 레벨 | 14000 루나 | 40.00% | 2400 | 4800 | 13% | 400 | - | - | - |
| 14 레벨 | 15 레벨 | 15000 루나 | 30.00% | 3000 | 6000 | 15% | 500 | - | - | - |
| 15 레벨 | 16 레벨 | 20000 루나 | 30.00% | 3500 | 7000 | 16% | 700 | 1% | - | - |
| 16 레벨 | 17 레벨 | 22500 루나 | 30.00% | 4000 | 8000 | 17% | 900 | 2% | - | - |
| 17 레벨 | 18 레벨 | 25000 루나 | 30.00% | 4500 | 9000 | 18% | 1100 | 3% | - | - |
| 18 레벨 | 19 레벨 | 27500 루나 | 30.00% | 5000 | 10000 | 19% | 1300 | 4% | - | - |
| 19 레벨 | 20 레벨 | 30000 루나 | 30.00% | 5500 | 11000 | 20% | 1500 | 5% | - | - |
| 20 레벨 | 21 레벨 | 35000 루나 | 25.00% | 7000 | 14000 | 22% | 2000 | 7% | 1% | - |
| 21 레벨 | 22 레벨 | 40000 루나 | 20.00% | 8000 | 16000 | 24% | 2500 | 9% | 2% | - |
| 22 레벨 | 23 레벨 | 45000 루나 | 15.00% | 9000 | 18000 | 26% | 3000 | 11% | 3% | - |
| 23 레벨 | 24 레벨 | 50000 루나 | 10.00% | 10000 | 20000 | 28% | 3500 | 13% | 4% | - |
| 24 레벨 | 25 레벨 | 60000 루나 | 5.00% | 11000 | 20000 | 30% | 4000 | 15% | 5% | - |
| 25 레벨 | 26 레벨 | 70000 루나 | 5.00% | 13000 | 20000 | 34% | 5000 | 18% | 7% | - |
| 26 레벨 | 27 레벨 | 80000 루나 | 4.00% | 15000 | 20000 | 38% | 6000 | 21% | 9% | - |
| 27 레벨 | 28 레벨 | 90000 루나 | 3.00% | 17000 | 20000 | 42% | 7000 | 24% | 11% | - |
| 28 레벨 | 29 레벨 | 100000 루나 | 2.00% | 19000 | 20000 | 46% | 8000 | 27% | 13% | - |
| 29 레벨 | 30 레벨 | 200000 루나 | 1.00% | 20000 | 20000 | 50% | 10000 | 30% | 15% | - |
| - | 31 레벨 | - | - | 22000 | 22000 | 55% | 12000 | 35% | 18% | - |
| - | 32 레벨 | - | - | 24000 | 24000 | 60% | 14000 | 40% | 21% | - |
| - | 33 레벨 | - | - | 26000 | 26000 | 65% | 16000 | 45% | 24% | - |
| - | 34 레벨 | - | - | 29000 | 29000 | 75% | 19000 | 52% | 28% | - |
| - | 35 레벨 | - | - | 32000 | 32000 | 85% | 22000 | 59% | 32% | - |
| - | 36 레벨 | - | - | 35000 | 35000 | 95% | 25000 | 66% | 36% | - |
| - | 37 레벨 | - | - | 40000 | 40000 | 100% | 30000 | 76% | 40% | - |
| - | 38 레벨 | - | - | 45000 | 45000 | 200% | 35000 | 86% | 45% | - |
| - | 39 레벨 | - | - | 50000 | 50000 | 400% | 50000 | 100% | 50% | 25% |
- 로 표시된 칸은, 해당 레벨에서는 해당 능력치가 제공되지 않는다는 의미입니다.smelt : 장착한 곡괭이의 제련 레벨 올리기를 시도합니다.-1이 아닐 때, 현재 레벨에서 다음 레벨로 올라갈 확률이 $p$%라면 chance($p$)를 한 번 호출합니다.-1 : 제련하기 위한 루나가 부족하거나 제련 레벨이 최대 레벨에 도달한 경우 반환합니다.0 : 제련에 실패한 경우 반환합니다. 즉, chance($p$) 값이 False인 경우입니다.1 : 제련에 성공한 경우 반환합니다. 즉, chance($p$) 값이 True인 경우입니다.곡괭이의 기본 능력치를 담당하는 제련 시스템[🔨] 입니다. 제련 레벨은 높을수록 무조건 좋습니다! 아마도요?
마법 부여
| 표기 이름 → | 달빛+ (1) | 달빛% (2) | 달빛의 기운 (3) | 최소치+ (4) | 최소치% (5) | 최소치의 기운 (6) |
|---|---|---|---|---|---|---|
| 효과 설명 → | 달빛 증가 | 달빛 증가 | 달빛 3배 증가 | 최소 루나 증가 | 최소 루나 증가 | 최소 루나 3배 증가 |
| 일반 | (+) 1~100 | - | - | (+) 1~100 | - | - |
| 레어 | (+) 1~300 | (%) 10~50 | - | (+) 1~400 | (%) 10~50 | - |
| 에픽 | (+) 1~500 | (%) 10~100 | - | (+) 1~800 | (%) 10~100 | - |
| 유니크 | (+) 500~700 | (%) 100~150 | (%) 200 | (+) 800~1200 | (%) 100~150 | (%) 200 |
| 레전드리 | (+) 700~1500 | (%) 150~200 | (%) 200 | (+) 1200~2000 | (%) 150~200 | (%) 200 |
| 표기 이름 → | 최대치+ (7) | 최대치% (8) | 최대치의 기운 (9) | 배율+ (10) | 배율% (11) | 배율의 기운 (12) |
| 효과 설명 → | 최대 루나 증가 | 최대 루나 증가 | 최대 루나 3배 증가 | 배율 증가 | 배율 증가 | 배율 3배 증가 |
| 일반 | (+) 2~200 | - | - | (+) 1~5 | - | - |
| 레어 | (+) 200~800 | (%) 10~50 | - | (+) 5~10 | - | - |
| 에픽 | (+) 800~1600 | (%) 50~100 | - | (+) 10~25 | (%) 1~10 | - |
| 유니크 | (+) 1600~2400 | (%) 100~150 | (%) 200 | (+) 25~50 | (%) 10~50 | (%) 200 |
| 레전드리 | (+) 2400~4000 | (%) 150~200 | (%) 200 | (+) 50~100 | (%) 50~100 | (%) 200 |
| 표기 이름 → | 드랍률 (13) | 행운 (14) | 강화석의 기운 (15) | 레벨 (16) | 할인 (17) | 루나의 기운 (18) |
| 효과 설명 → | 특정 강화석 드랍률 증가 | 얻는 강화석 개수 증가 | 모든 강화석 드랍률 3배 증가 | 레벨 증가 | 할인 적용 | 최종 루나 3배 증가 |
| 일반 | (+) 1~5 [일반 강화석만] | (+) 1 | - | - | (+) -5 | - |
| 레어 | (+) 5~10 [일반 강화석만] | (+) 2 | - | - | (+) -10 | - |
| 에픽 | (+) 5~10 [레어 강화석만] | (+) 3 | - | (+) 1 | (+) -15 | - |
| 유니크 | (+) 10~20 [레어 강화석만] | (+) 4 | (%) 200 | (+) 2 | (+) -20 | (%) 200 |
| 레전드리 | (+) 20~25 [에픽 강화석만] | (+) 5 | (%) 200 | (+) 3 | (+) -25 | (%) 200 |
- 로 표시된 칸은, 해당 마법 등급에서는 해당 마법이 나오지 않는다는 의미입니다.달빛+ (1)", "배율% (11)")은 마법의 고유한 아이디입니다. 이 아이디로 어떤 종류의 마법인지 알 수 있습니다.
(+) 2~200", "(%) 1~10")은, 해당 마법이 어떻게 계산되는가를 나타내는 연산 기호입니다.
+ : $x_i=x_i+y$% : $x_i= x_i + ( (x_i \times y) \div 100$ 의 몫$)$+ : $x_i[j]=x_i[j]+y$% : $x_i[j]= x_i[j] + ( (x_i[j] \times y) \div 100$ 의 몫$)$enchant : 장착한 곡괭이에 마법 3개를 부여합니다.-1 : 마법 부여를 하기 위한 루나가 부족한 경우 반환합니다.1 : 마법 부여에 성공한 경우 다음과 같은 형태로 반환합니다.
1 <magic slot 0 id> : 0번 마법 슬롯의 마법 아이디 <magic slot 0 data> : 0번 마법 슬롯의 $y$값 <magic slot 1 id> : 1번 마법 슬롯의 마법 아이디 <magic slot 1 data> : 1번 마법 슬롯의 $y$값 <magic slot 2 id> : 2번 마법 슬롯의 마법 아이디 <magic slot 2 data> : 2번 마법 슬롯의 $y$값$y$값은 항상 $-25$ 이상 4ドル,000円$ 이하의 정수로 주어집니다.
마법 시스템[🪄] [🔮] 을 통해 곡괭이를 더 강화할 수 있습니다! 제련 시스템[🔨] 과 마법 시스템[🪄] [🔮] 은 서로 영향을 줄 수 있으니 한번 마법 종류를 꼼꼼하게 읽어보는 것을 추천합니다.
craft $r$ : $r$번 등급 강화석을 합성합니다.-1 : 합성을 하기 위한 이전 등급의 강화석 또는 루나가 부족한 경우 반환합니다.1 : 합성에 성공한 경우 반환합니다.rank_up : 장착한 곡괭이의 마법 승급을 시도합니다.-1이 아닐 때 현재 마법 등급에서 승급할 확률이 $p$%라면 chance($p$)를 한 번 호출합니다.-1 : 목표 등급 강화석이 부족하거나, 장착한 곡괭이의 마법 등급이 레전드리일 경우 반환합니다.0 : 마법 승급에 실패한 경우 반환합니다. 즉, chance($p$) 값이 False인 경우입니다.1 : 마법 승급에 성공한 경우 반환합니다. 즉, chance($p$) 값이 True인 경우입니다.합성 시스템[💎] 과 마법 승급 시스템[🔮] 은 마법 부여 시스템[🪄] 을 더 강력하게 만들어주는 시스템입니다. 강력한 마법을 얻고 싶다면 해당 시스템을 숙지해 두는 게 좋겠네요!
축복
| 레벨 | 최소 루나 증가 | 최대 루나 증가 | 달빛 증가 | 일반 강화석 드랍률 증가 | 배율 증가 |
|---|---|---|---|---|---|
| 0 레벨 | - | - | - | - | - |
| 1 레벨 | (+) 100 | (+) 200 | (+) 100 | (+) 1% | - |
| 2 레벨 | (+) 200 | (+) 400 | (+) 200 | (+) 2% | - |
| 3 레벨 | (+) 300 | (+) 600 | (+) 300 | (+) 3% | - |
| 4 레벨 | (+) 400 | (+) 800 | (+) 400 | (+) 4% | - |
| 5 레벨 | (+) 500 | (+) 1000 | (+) 500 | (+) 5% | - |
| 6 레벨 | (+) 600 | (+) 1200 | (+) 600 | (+) 6% | - |
| 7 레벨 | (+) 700 | (+) 1400 | (+) 700 | (+) 7% | - |
| 8 레벨 | (+) 800 | (+) 1600 | (+) 800 | (+) 8% | - |
| 9 레벨 | (+) 900 | (+) 1800 | (+) 900 | (+) 9% | - |
| 10 레벨 | (+) 1000 | (+) 2000 | (+) 1000 | (+) 10% | - |
| 11 레벨 | (+) 1100 | (+) 2200 | (+) 1100 | (+) 11% | - |
| 12 레벨 | (+) 1200 | (+) 2400 | (+) 1200 | (+) 12% | - |
| 13 레벨 | (+) 1300 | (+) 2600 | (+) 1300 | (+) 13% | - |
| 14 레벨 | (+) 1400 | (+) 2800 | (+) 1400 | (+) 14% | - |
| 15 레벨 | (+) 1500 | (+) 3000 | (+) 1500 | (+) 15% | - |
| 16 레벨 | (+) 1600 | (+) 3200 | (+) 1600 | (+) 16% | - |
| 17 레벨 | (+) 1700 | (+) 3400 | (+) 1700 | (+) 17% | - |
| 18 레벨 | (+) 1800 | (+) 3600 | (+) 1800 | (+) 18% | - |
| 19 레벨 | (+) 1900 | (+) 3800 | (+) 1900 | (+) 19% | - |
| 20 레벨 | (+) 2000 | (+) 4000 | (+) 2000 | (+) 20% | - |
| $b$ 레벨 | (+) 2000 | (+) 4000 | (+) 2000 | (+) 20% | (+) ($b$ - 20)% |
- 로 표시된 칸은, 해당 축복 레벨에서는 해당 능력치가 제공되지 않는다는 의미입니다.축복은 곡괭이의 연이은 마법 승급 실패의 고통을 덜어주는 시스템입니다. 정말 갓겜이죠?
mine : 장착한 곡괭이로 채광합니다.1 : 채광에 성공한 경우, 다음 한 줄에 길이가 6ドル$인 정수형 배열을 추가로 반환합니다.
강화한 곡괭이로 채광하는 과정입니다. 꽤 복잡하지만 제련 레벨, 축복 레벨, 마법 등급이 높을수록 더 많은 재화를 얻는다고 보면 됩니다!
업적
| 업적 번호 | 업적 이름 | 달성 조건 |
|---|---|---|
| 1 | 제로부터 시작하는 Lunatic Mine | 정확히 0ドル$ 루나 보유 |
| 2 | 끝이야? | 제련 레벨이 30ドル$ 레벨인 곡괭이 보유 |
| 3 | 레전설 | 레전드리 등급 곡괭이 보유 |
| 4 | 양자 곡괭이 | (최종 최대 루나 - 최종 최소 루나) 값이 100ドル,000円$ 이상인 곡괭이 보유 |
| 5 | 역전 곡괭이 | (최종 최대 루나 - 최종 최소 루나) 값이 0ドル$ 미만인 곡괭이 보유 |
| 6 | 오버플로우 | 아무 등급의 강화석 드랍률이 100ドル%$ 초과인 곡괭이 보유 |
| 7 | 전설의 광부의 전설 | 레전드리 등급 곡괭이 3ドル$개 보유 |
| 8 | 만수루 | 100ドル,000円,000円$ 루나 이상 보유 |
| 9 | 광(狂)부 | 모든 곡괭이 최종 레벨 합산 100ドル$ 이상 달성 |
| 10 | 진짜로 끝이야. | 최종 레벨이 39ドル$ 레벨인 곡괭이 보유 |
exit : Lunatic Mine 게임을 종료합니다. 😢첫 번째 줄에 시드 $S_0$가 주어집니다. $(0 \le S_0 \lt 2^{32})$
다음을 표준 출력 스트림(stdout)으로 한 줄에 출력하여 20ドル,000円$번까지 명령어를 사용할 수 있습니다.
mine : 장착한 곡괭이로 채광합니다.equip $x$ : $x$번 곡괭이를 장착합니다. $(0 \le x \le 2)$smelt : 장착한 곡괭이의 제련 레벨 올리기를 시도합니다.craft $r$ : $r$번 등급 강화석을 합성합니다. $(1 \le r \le 4)$rank_up : 장착한 곡괭이의 마법 승급을 시도합니다.enchant : 장착한 곡괭이에 마법 3개를 부여합니다.명령어를 출력한 뒤, 여러분은 인터랙터에게서 다음과 같은 결과를 알 수 있습니다.
mine : 첫 번째 줄에 명령어 결과가 출력됩니다. 채광에 성공한 경우에 한해서 추가로 1개 줄에 걸쳐 채광 결과가 출력됩니다.
1 : 채광에 성공한 경우
<luna> <normal_upgrade_stone> <rare_upgrade_stone> <epic_upgrade_stone> <unique_upgrade_stone> <legendary_upgrade_stone>equip $x$ : 첫 번째 줄에 명령어 결과가 출력됩니다.
1 : 장착에 성공한 경우smelt : 첫 번째 줄에 명령어 결과가 출력됩니다.
-1 : 제련하기 위한 루나가 부족하거나 제련 레벨이 최대 레벨에 도달한 경우0 : 제련에 실패한 경우1 : 제련에 성공한 경우craft $r$ : 첫 번째 줄에 명령어 결과가 출력됩니다.
-1 : 합성을 하기 위한 이전 등급의 강화석 또는 루나가 부족한 경우1 : 합성에 성공한 경우rank_up : 첫 번째 줄에 명령어 결과가 출력됩니다.
-1 : 목표 등급 강화석이 부족하거나, 장착한 곡괭이의 마법 등급이 레전드리일 경우0 : 승급에 실패한 경우1 : 승급에 성공한 경우enchant : 첫 번째 줄에 명령어 결과가 출력됩니다. 마법 부여에 성공한 경우에 한해서 추가로 6개 줄에 걸쳐 마법 부여의 결과가 출력됩니다.
-1 : 마법 부여를 하기 위한 루나가 부족한 경우1 : 마법 부여에 성공한 경우
<magic slot 0 id><magic slot 0 data><magic slot 1 id><magic slot 1 data><magic slot 2 id><magic slot 2 data><magic slot 0 id>, <magic slot 1 id>, <magic slot 2 id>는 1ドル$ 이상 18ドル$ 이하의 정수로 주어집니다.<magic slot 0 data>, <magic slot 1 data>, <magic slot 2 data>는 $-25$ 이상 4ドル,000円$ 이하의 정수로 주어집니다.만약 게임을 종료하고 싶다면 다음과 같이 출력합니다.
exit를 한 줄에 출력합니다.다음과 같은 경우에는 를 받습니다.
equip $x$ 명령어에서 $x = 3$인 경우craft $r$ 명령어에서 $r = 0$인 경우다음과 같은 경우에는 예상하지 못한 채점 결과를 받을 수 있습니다.
채점 데이터 273개의 각 시드는 다음과 같습니다.
아래 Python 3.12.3 코드로 모든 채점 데이터의 시드를 생성할 수 있습니다.
import random
random.seed("Lunatic Mine")
for _ in range(273):
print(random.randint(0, 2 ** 32 - 1), end=", ")
123456789 1 1 22 0 0 0 0 0 1 29 0 0 0 0 0 1 1 129 0 0 0 0 0 1 186 0 0 0 0 0 1 139 0 0 0 0 0 1 133 0 0 0 0 0 1 192 0 0 0 0 0 1 195 0 0 0 0 0 1 14 1 7 82 13 1 1 180 0 0 0 0 0 1 165 0 0 0 0 0 1 184 0 0 0 0 0 1 111 0 0 0 0 0 1 186 0 0 0 0 0 1 193 0 0 0 0 0 1 147 0 0 0 0 0 1 142 0 0 0 0 0 1 0
equip 1 mine mine smelt mine mine mine mine mine mine enchant mine mine mine mine mine mine mine mine craft 1 rank_up exit
예제는 입출력이 어떤 방식으로 이루어지는지 이해를 돕기 위해 의도적으로 줄 간격을 조절한 것이며, 실제 입출력과 다른 것에 유의해야 합니다. 또한 이 예제 출력은 를 받습니다.
입력이 매우 기므로 파일로 대체합니다.
출력이 매우 기므로 파일로 대체합니다.
언어별로 표준 출력 버퍼를 비우는 방법은 다음과 같습니다.
fflush(stdout)std::cout << std::flushSystem.out.flush()sys.stdout.flush()Contest > BOJ User Contest > 유틸컵 > 제2회 유틸컵 🌙⛏️번