Planet Nine
시간 제한1초메모리 제한512 MB
레지스터 값을 9x만큼 더하는 연산과 앞자리 1들을 지우는 연산만으로 a를 b로 바꿀 수 있는지 판정하고, 가능하면 1000회 이내의 연산 순서를 출력한다.
문제
Planet Nine은 태양계 외곽에 존재한다고 가정된 행성이다. 그 존재 가설을 증명하려는 과학자들은 천체를 추적할 수 있는 특수 장치를 만들었다. 과학자들은 이 장치를 그 가상 행성의 궤도를 관측하도록 설정했다.
과학자들은 예산이 매우 부족해서, 장치에는 정수 레지스터가 하나뿐이다. 장치가 천체를 추적할 때마다 레지스터의 값이 9만큼 증가한다. 장치에는 특별한 기능이 하나 있다. 레지스터에 저장된 값의 십진수 표현에서 첫 번째 자리가 1일 때만 그 자리가 사라질 수 있다. 레지스터에 숫자 이 저장되어 있으면 그것도 사라질 수 있고, 레지스터 값은 이 된다.
9를 하나 이상 더하는 것을 제1종 연산, 1인 맨 앞 자리 하나 이상이 사라지는 것을 제2종 연산이라고 하자.
레지스터에는 라는 값이 들어 있었고, 과학자들은 점심을 먹으러 갔다. 돌아와 보니 레지스터의 값이 로 바뀌어 있었다. 과학자들은 장치가 고장 났는지 궁금해하고, 고장 나지 않았다면 를 로 바꾸는 방법을 알고 싶어 한다. 점심시간이 짧았으므로, 그 변환은 1000번 이하의 연산으로 이루어져야 한다.
에서 를 얻는 방법이 여러 개라면 과학자들은 그중 아무거나 만족한다.
입력
첫째 줄에 정수 와 가 주어진다. ()
출력
장치가 고장 났다면 한 줄에 "Broken"을 출력한다.
그렇지 않으면 첫째 줄에 "Stable"이라는 단어만 출력한다. 그다음 줄부터는 에서 를 얻는 방법을 설명해야 한다.
둘째 줄에는 점심시간 동안 일어난 연산의 수 ()을 출력한다. 을 최소화할 필요는 없다.
그다음 개의 줄에는 각각 연산 하나를 출력한다.
- "+ " 줄에서 은 천체 개를 장치가 추적해서 레지스터 값이 만큼 증가했음을 뜻한다.
- "- " 줄에서 은 레지스터의 맨 앞 자리가 사라졌음을 뜻한다. 이 연산을 수행하려면 그 자리가 모두 1이어야 한다.
이 개의 연산을 차례로 적용한 뒤 값 는 가 되어야 한다. 처음 개의 연산()을 적용해 얻은 중간값은 보다 클 수 없다.