Logo
(追記) (追記ここまで)

30627번 - 삼월 초하루 스페셜 저지

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB214827841.053%

문제

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

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

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

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

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

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

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

입력

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

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

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

출력

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

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

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

제한

예제 입력 1

3
95 95
0 1 2

예제 출력 1

2
2 3
1 2

예제 입력 2

3
85 90
1 0 2

예제 출력 2

5
1 3
2 1
3 2
1 3
2 1

예제 입력 3

3
100 95
2 1 0

예제 출력 3

-1

힌트

출처

University > 서강대학교 > Sogang Programming Contest > 2023 Sogang Programming Contest > Champion C번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /