아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Planet Nine

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

요약
레지스터 값을 9x만큼 더하는 연산과 앞자리 1들을 지우는 연산만으로 a를 b로 바꿀 수 있는지 판정하고, 가능하면 1000회 이내의 연산 순서를 출력한다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 구현, 그리디
정답자
아직 제출이 없습니다

문제

Planet Nine은 태양계 외곽에 존재한다고 가정된 행성이다. 그 존재 가설을 증명하려는 과학자들은 천체를 추적할 수 있는 특수 장치를 만들었다. 과학자들은 이 장치를 그 가상 행성의 궤도를 관측하도록 설정했다.

과학자들은 예산이 매우 부족해서, 장치에는 정수 레지스터가 하나뿐이다. 장치가 천체를 추적할 때마다 레지스터의 값이 9만큼 증가한다. 장치에는 특별한 기능이 하나 있다. 레지스터에 저장된 값의 십진수 표현에서 첫 번째 자리가 1일 때만 그 자리가 사라질 수 있다. 레지스터에 숫자 11이 저장되어 있으면 그것도 사라질 수 있고, 레지스터 값은 00이 된다.

9를 하나 이상 더하는 것을 제1종 연산, 1인 맨 앞 자리 하나 이상이 사라지는 것을 제2종 연산이라고 하자.

레지스터에는 aa라는 값이 들어 있었고, 과학자들은 점심을 먹으러 갔다. 돌아와 보니 레지스터의 값이 bb로 바뀌어 있었다. 과학자들은 장치가 고장 났는지 궁금해하고, 고장 나지 않았다면 aa를 bb로 바꾸는 방법을 알고 싶어 한다. 점심시간이 짧았으므로, 그 변환은 1000번 이하의 연산으로 이루어져야 한다.

aa에서 bb를 얻는 방법이 여러 개라면 과학자들은 그중 아무거나 만족한다.

입력

첫째 줄에 정수 aa와 bb가 주어진다. (0≤a,b≤1090 \le a, b \le 10^9)

출력

장치가 고장 났다면 한 줄에 "Broken"을 출력한다.

그렇지 않으면 첫째 줄에 "Stable"이라는 단어만 출력한다. 그다음 줄부터는 aa에서 bb를 얻는 방법을 설명해야 한다.

둘째 줄에는 점심시간 동안 일어난 연산의 수 nn (0≤n≤10000 \le n \le 1000)을 출력한다. nn을 최소화할 필요는 없다.

그다음 nn개의 줄에는 각각 연산 하나를 출력한다.

  • "+ xx" 줄에서 x>0x > 0은 천체 xx개를 장치가 추적해서 레지스터 값이 9x9x만큼 증가했음을 뜻한다.
  • "- yy" 줄에서 y>0y > 0은 레지스터의 맨 앞 yy자리가 사라졌음을 뜻한다. 이 연산을 수행하려면 그 yy자리가 모두 1이어야 한다.

이 nn개의 연산을 차례로 적용한 뒤 값 aa는 bb가 되어야 한다. 처음 kk개의 연산(0<k<n0 < k < n)을 적용해 얻은 중간값은 101810^{18}보다 클 수 없다.

예제2

  1. 예제 1

    입력
    0 0
    
    예상 출력
    Stable
    0
    
  2. 예제 2

    입력
    1 9
    
    예상 출력
    Stable
    2
    + 2
    - 1