삼월 초하루

시간 제한1초메모리 제한1024 MB

요약
100℃ 물이 담긴 숙우 3개에서 물을 옮길 때마다 5℃씩 식는다. 각 물의 목표 온도와 최종 배치가 주어질 때 가능한 이동 순서를 찾거나 불가능을 판정한다.
난이도

쉬움10점 중 3점

유형
BFS, 그래프, 시뮬레이션
정답자
아직 제출이 없습니다

문제

차 모임 '삼월 초하루'가 있다. 그들은 수시로 茶(차)와 다식을 먹으며 친목을 다지고 있다.

어느 날 차 모임을 이끄는 팽주(차를 우리는 사람) 초승달은 자주 가는 찻집 사장님으로부터 다음과 같은 사실을 배워 왔다.

숙우에 담긴 뜨거운 물을 다른 숙우로 이동할 때마다 물의 온도가 5\mathbf{5}℃ 감소한다.

다구 중 하나인 '숙우'는 '공도배'라고도 하며 우린 물을 나누거나 차를 우릴 물을 식히기 위해 사용한다. 물을 옮길 때마다 온도가 감소한다는 사실을 알게 된 초승달은 자신이 가지고 있었던 숙우들을 이용해 각각의 차에 맞는 적절한 온도를 가진 물을 여러 개 만들어 한꺼번에 차를 여러 종류로 우리고 싶어졌다.

초승달은 11번부터 NN번까지 NN개의 숙우를 가지고 있다. 11번부터 N−1N-1번까지의 숙우에 11번부터 N−1N-1번까지의 물이 순서대로 채워져 있고, NN번 숙우는 비어 있다. N−1N-1개의 물은 각각 목표 온도를 가지고 있다. 처음 숙우에 담긴 물은 100100℃이다. 숙우의 물을 이동할 때 빈 숙우로만 이동할 수 있으며, 숙우에 담긴 물을 모두 이동해야 한다.

숙우 속 물을 다른 숙우로 이동하여 온도를 낮춰 목표 온도를 맞춰보자. 그리고 알록달록 다양한 숙우에 11번부터 N−1N-1번까지의 물이 알맞게 담길 수 있도록 해 보자!

참고로 오늘은 초승달이 숙우를 33개만 들고 왔다고 한다.

입력

첫째 줄에는 숙우의 개수 NN이 주어진다. (N=3)(N=3)

둘째 줄에는 11번부터 N−1N-1번 물에 대한 목표 온도 t_it\_i가 공백으로 구분되어 주어진다. (5≤t_i≤100(5\le t\_i\le 100, t_it\_i는 55의 배수))

셋째 줄에는 물을 옮긴 후 11번부터 NN번까지의 숙우에 담겨야 하는 물의 번호가 각각 공백으로 구분되어 주어진다. 물의 번호는 11부터 N−1N-1까지 중복되지 않는 양의 정수이다. 빈 숙우는 00으로 주어진다.

출력

만약 목표를 달성할 수 없다면 첫째 줄에 −1-1을 출력한다.

그렇지 않다면 첫째 줄에 이동 횟수 KK (0≤K≤40)(0\le K\le 40)를 출력하고, 둘째 줄부터 KK개의 줄에 걸쳐 숙우 속 물을 옮기는 과정 x yx\ y를 공백으로 구분하여 출력한다. xx와 yy는 서로 다른 양의 정수이며 x yx\ y는 xx번 숙우에 담긴 물을 yy번 숙우로 옮긴다는 뜻이다.

가능한 방법이 여러 가지인 경우 아무거나 한 가지만 출력한다.

예제3

  1. 예제 1

    입력
    3
    95 95
    0 1 2
    
    예상 출력
    2
    2 3
    1 2
    
  2. 예제 2

    입력
    3
    85 90
    1 0 2
    
    예상 출력
    5
    1 3
    2 1
    3 2
    1 3
    2 1
    
  3. 예제 3

    입력
    3
    100 95
    2 1 0
    
    예상 출력
    -1