문제 해결을 위한 아이디어는 입력받은 사분면 조각의 변호를 행, 열이 0부터 (사분면 조각 번호의 자릿수 - 1)까지의 좌표 평면 위 x, y 좌표로 변환하고
변환된 x, y 좌표를 이동의 내용을 나타내는 두 정수만큼 좌표을 이동 시킨 후 다시 사분면 조각으로 변환하는 것이다.
find_po 함수는 사분면 조각의 번호를 좌표로 변환하는 함수이다.
첫번째 매개 변수 n은 사분면 조각의 번호가 들어간다. 입력받는 사분면 조각의 번호가 최대 50자리이기 때문에 문자열 형식을 갖는다.
두번째 매개 변수 i는 사분면 조각의 번호인 n의 요소를 가리키는 인덱스이다. 0번째 요소부터 차례대로 가리키며 n의 길이가 됐을 때 좌표를 반환한다.
세번째부터 여섯번째 매개 변수는 순서대로 x좌표의 최솟값과 최댓값, y좌표의 최솟값과 최댓값이다.
find_po 함수는 n[i]의 값에 따라 재귀를 통해 좌표를 줄여 나가며 최종적으로 x, y좌표를 반환한다.
change_po 함수는 좌표를 사분면 조각의 번호로 변환하는 함수이다.
첫번째 매개 변수 p는 좌표를 나타내는 pair 변수이다. 그 외 매개 변수는 find_po 함수의 매개 변수와 같다.
x, y좌표의 위치를 판정하여 조건에 따라 몇 사분면인지 판단해가며 재귀를 통해 사분면 조각의 번호를 완성해 간다.
위 두 함수를 이용해 문제를 해결하고 다른 주의 사항으로
이동의 내용을 나타내는 두 정수가 최대 2^50이므로 long long형을 사용하고
find_po로 변환한 좌표가 0이상 2^사분면 조각 번호의 자릿수 미만의 범위를 벗어날 경우 성립할 수 없으므로 -1을 출력한다.