사계절을 되찾은 자

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

요약
합이 3N인 세 게이지 (A,B,C)에서 시작해, 모든 중간 상태가 0과 2N 사이를 유지하도록 세 가지 공격을 최소 횟수로 가해 (N,N,N)에 도달하는 사전순 최소 순서를 구한다.
난이도

어려움10점 중 8점

유형
BFS, 그래프, 그리디, 구현
정답자
아직 제출이 없습니다

문제

카링 사진

카링은 2023년 2월 23일에 추가된 메이플스토리 최상위 보스 몬스터로, 카링과 대결하는 동안 계절의 균형을 유지해야 하는 독특한 게이지 시스템을 가지고 있다.

균형된 게이지 사진

계절의 균형: 게이지 시스템

노란색 게이지를 봄의 기운, 파란색 게이지를 여름의 기운, 보라색 게이지를 가을의 기운이라고 한다. 각 게이지의 양은 00 이상 2N2N 이하의 정수로 표현할 수 있다. 각 게이지의 양을 합치면 항상 3N3N이며 게이지 총량은 항상 변하지 않는다고 가정한다. 처음에는 봄의 기운은 AA, 여름의 기운은 BB, 가을의 기운은 CC만큼 있다.

카링이 공격하는 종류에 따라 피격 당했을 때, 게이지 변화가 다르다. 게이지 변화는 다음 33가지 중 하나에 해당한다.

  • 궁기의 공격: 봄의 기운이 aa만큼 상승한다. 동시에 가을의 기운이 aa만큼 감소한다.
  • 도올의 공격: 여름의 기운이 bb만큼 상승한다. 동시에 봄의 기운이 bb만큼 감소한다.
  • 혼돈의 공격: 가을의 기운이 cc만큼 상승한다. 동시에 여름의 기운이 cc만큼 감소한다.

계절의 균형을 이루려면 한 게이지라도 00 이하가 되거나, 2N2N 이상이 되지 않아야 한다.

균형이 깨진 게이지 사진

N=500N=500일 때, 봄의 기운이 1,0001\\,000, 가을의 기운이 00이 되어 균형이 깨진 상태

따라서 계절의 균형을 안전하게 유지하기 위해 각 게이지의 양을 NN에 가깝게 유지하는 것이 중요하다. 계절의 균형을 맞추는 방법을 터득해 카링 게이지 시스템을 파훼 해보자! 처음 상태의 게이지가 주어졌을 때, 모두 NN으로 맞추기 위한 최소 피격 횟수를 구하고, 그 공격을 어떤 순서로 피격 당해야 하는지 구해보자.

입력

첫 번째 줄에 NN이 주어진다. (2≤N≤1,000)(2 \le N \le 1\\,000)

두 번째 줄에 정수 AA, BB, CC가 공백으로 구분되어 주어진다. (0<(0 \lt AA,, BB,, CC<2N \lt 2N; AA++BB++CC=3N)=3N)

세 번째 줄에 정수 aa, bb, cc가 공백으로 구분되어 주어진다. (0<(0 \lt aa,, bb,, cc<2N) \lt 2N)

처음부터 각 게이지의 양이 모두 NN인 경우는 주어지지 않는다.

출력

만약 계절의 균형을 안전하게 유지하면서 게이지를 모두 NN으로 맞추는 것이 가능하다면

  • 첫 번째 줄에 최소 피격 횟수를 MM을 출력한다.
  • 두 번째 줄에 길이가 MM인 문자열 SS를 출력한다. 문자열 SS의 ii번째 문자는 ii번째로 어떤 종류의 공격을 피격 당했는지를 의미한다. (1≤i≤M)(1 \le i \le M)
    • 만약 문자가 A라면 궁기의 공격을, B라면 도올의 공격을, C라면 혼돈의 공격을 피격 당했다는 의미이다.
  • 만약 가능한 문자열 SS가 여러 가지라면 사전 순으로 가장 앞서는 문자열 SS를 출력한다.

만약 계절의 균형을 안전하게 유지하면서 게이지를 모두 NN으로 맞추는 것이 불가능하다면

  • 첫 번째 줄에 -1을 출력한다.

예제2

  1. 예제 1

    입력
    500
    250 300 950
    50 50 50
    
    예상 출력
    13
    AAAAAAAAABBBB
    
  2. 예제 2

    입력
    500
    507 163 830
    163 830 100
    
    예상 출력
    -1