실행 시간 제한 | 메모리 제한 |
---|---|
1 초 | 128 MB |
선장 루피는 선원 닥터 쵸파를 구하기 위한 모험을 떠나고 있습니다. 이 위대한 모험이야기는 N x M 크기의 2차원 그리드 (1 <= N, M <= 500)에서 펼쳐집니다. 이 그리드는 세계의 측면 모습을 나타냅니다. 일부 그리드 셀은 비어 있으며, 다른 셀은 막혀 있어 이동할 수 없습니다.
불행히도, 캡틴 루피는 점프할 수 없습니다. 세계를 건너갈 때 다음의 물리 법칙을 지켜야 합니다.
1) 만약 캡틴 루피 바로 아래에 셀이 없다면 (즉, 그가 격자의 가장자리에 있다면), 그는 우주 공간으로 날아가 임무는 실패합니다.
2) 만약 캡틴 루피 바로 아래의 셀이 비어있다면, 그는 그 셀로 떨어집니다.
3) 그 외의 경우:
캡틴 루피가 중력의 방향을 바꾸면, 그의 밑에 있는 셀 (규칙 1과 2에서 언급한 '아래'의 셀)이 한 쪽 높은 행 인덱스의 셀과 한 쪽 낮은 행 인덱스의 셀 사이를 전환합니다. (입력의 첫 행은 인덱스 1을 가지고, 마지막 행은 인덱스 N을 가지고 있습니다.) 초기에는, 한 쪽 높은 행인덱스를 가진 셀들이 캡틴 루피 아래에 있습니다.
닥터 쵸파는 이 세계 어딘가에 분실되었습니다. 캡틴 루피가 가장 적은 중력 뒤집기 수로 그의 셀에 도달 할 수 있도록 도와주세요. 만약 닥터 쵸파에게 도달하는 것이 불가능하다면, -1을 출력해 주세요.
5 5 ##### #...# #...D #C... ##.##
3
출처: USACO 2013 US Open, Silver Problem 1. What's Up With Gravity