마이티는 길이가 N인 1차원 세상의 어딘가에 위치해 있고, 1차원 세상의 어딘가에 위치한 탈출구로 이동해 탈출하려고 합니다. 마이티는 1차원 세상에서 현재 위치한 칸에서 왼쪽 칸이나 오른쪽 칸으로 움직일 수 있습니다. 마이티가 가는 길에 벽이 있을 수도 있지만 마이티는 최대 M개의 벽을 부수고 지나갈 수 있습니다.
그런데 어느 날, 1차원 세상에 인피니티 건틀렛이 떨어졌습니다. 마이티가 인피니티 건틀렛이 있는 칸으로 이동해서 손에 끼고 손가락을 튕기기만 하면 1차원 세상의 모든 벽을 부술 수 있습니다.
마이티가 위치한 1차원 세상을 표현한 지도가 주어질 때 1차원 세상을 탈출할 수 있을지 구해주세요.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어집니다.
각 테스트 케이스의 첫째 줄에 1차원 세상의 길이 ~N\ (3 \le N \le 8)~과 마이티가 벽을 부술 수 있는 최대 횟수 ~M\ (0 \le M \le N - 3)~이 주어집니다.
둘째 줄에 1차원 세상을 표현한 길이 N짜리 문자열 S가 주어집니다.
문자열 S에서 @ 는 단 한 번 등장하며, 마이티를 의미합니다.
문자열 S에서 알파벳 대문자 O 는 단 한 번 등장하며, 마이티가 이동하려는 탈출구를 의미합니다.
문자열 S에서 알파벳 대문자 G 는 단 한 번 등장하며, 인피니티 건틀렛을 의미합니다.
문자열 S에서 등장하는 나머지 문자는 . 이거나 # 입니다. . 은 빈 칸을 의미합니다. 마이티는 빈 칸으로 자유롭게 이동할 수 있습니다. # 은 벽을 의미합니다. 마이티는 벽이 있는 칸으로 이동할 수 없지만, 최대 M개의 벽은 부술 수 있습니다.
출력
각 테스트 케이스마다 마이티가 1차원 세상을 탈출할 수 있다면 HAHA! 를 출력합니다. 그렇지 못하다면 HELP! 를 출력합니다. 모두 대문자로 출력해야 하는 것에 유의하세요.
예제 입력 1
4
7 1
@####OG
8 2
G###@##O
8 2
O###@##G
5 0
OG##@
예제 출력 1
HELP!
HAHA!
HAHA!
HELP!
| 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 |
|---|---|---|---|---|---|
| 🥇 | 202302564_성준혁 | C | 59ms | 1408KB | 1484B |
| 🥈 | 202402751_한현욱 | Python | 531ms | 10368KB | 679B |
| 🥉 | 202401828_백성현 | Python | 729ms | 10368KB | 609B |
| 4 | 202302618_정준혁 | Java | 1315ms | 29844KB | 2650B |
| 5 | 202402645_김건우 | Java | 1916ms | 45648KB | 1809B |
| 6 | 202302602_이준휘 | Java | 2055ms | 56600KB | 1182B |
| 7 | 202402740_조민영 | Java | 2095ms | 46976KB | 700B |
| # | 사용자 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 |
|---|---|---|---|---|---|---|---|
| 3862 | 202402751_한현욱 | 정답 | Python | 531ms | 10368KB | 679B | 2024. 05. 24. 13:18 |
| 3735 | 202402740_조민영 | 정답 | Java | 2095ms | 46976KB | 700B | 2024. 05. 23. 02:28 |
| 3693 | 202302602_이준휘 | 정답 | Java | 2055ms | 56600KB | 1182B | 2024. 05. 21. 07:42 |
| 3692 | 202302602_이준휘 | 오답 | Java | 2116ms | 57112KB | 1202B | 2024. 05. 21. 07:35 |
| 3691 | 202302602_이준휘 | 오답 | C++ | 70ms | 1408KB | 1207B | 2024. 05. 21. 07:14 |
| 3690 | 202302602_이준휘 | 시간 초과 | C++ | 74009ms | 1280KB | 1205B | 2024. 05. 21. 07:13 |
| 3689 | 202302602_이준휘 | 런타임 에러 | C++ | 1445ms | 1280KB | 1204B | 2024. 05. 21. 07:11 |
| 3688 | 202302602_이준휘 | 런타임 에러 | C++ | 1484ms | 1280KB | 897B | 2024. 05. 21. 07:04 |
| 3687 | 202302602_이준휘 | 컴파일 에러 | C | - | - | 897B | 2024. 05. 21. 07:04 |
| 3681 | 202402645_김건우 | 정답 | Java | 1916ms | 45648KB | 1809B | 2024. 05. 20. 16:52 |
| 3471 | 202302564_성준혁 | 정답 | C | 59ms | 1408KB | 1484B | 2024. 05. 08. 16:08 |
| 3470 | 202302564_성준혁 | 런타임 에러 | C | 1238ms | 1408KB | 1441B | 2024. 05. 08. 16:05 |
| 3469 | 202302564_성준혁 | 런타임 에러 | C | 1368ms | 1408KB | 1471B | 2024. 05. 08. 16:03 |
| 3468 | 202302564_성준혁 | 런타임 에러 | C | 1424ms | 1408KB | 1445B | 2024. 05. 08. 16:03 |
| 3467 | 202302564_성준혁 | 오답 | C | 47ms | 1152KB | 80B | 2024. 05. 08. 16:01 |
| 3466 | 202302564_성준혁 | 컴파일 에러 | Python | - | - | 80B | 2024. 05. 08. 16:00 |
| 3465 | 202302564_성준혁 | 런타임 에러 | C | 1338ms | 1408KB | 1445B | 2024. 05. 08. 15:56 |
| 3464 | 202302564_성준혁 | 런타임 에러 | C | 1382ms | 1408KB | 1479B | 2024. 05. 08. 15:54 |
| 3463 | 202302564_성준혁 | 런타임 에러 | C | 1237ms | 1408KB | 1447B | 2024. 05. 08. 15:53 |
| 3462 | 202302564_성준혁 | 런타임 에러 | C | 1349ms | 1408KB | 1401B | 2024. 05. 08. 15:52 |