페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2343

One Register 1s - MB

문제

현재 임의의 정수 x가 있을 경우, 당신은 다음과 같은 연산을 수행하여, x의 값을 바꿀 수 있다.

더하기(addition,'+') : x = x + x 빼기(subtraction,'-') : x = x - x 곱하기(multiplication,'*') : x = x * x 정수 나누기(integer division,'/') : x = x / x

 

위의 4가지 연산을 이용하여 양의 정수 x를 양의 정수 y로 만들고자 한다.

 

예를 들어 x=7이고, y=392라고 할 경우, 다음과 같이 3번의 연산을 적용하여 x를 392로 만들 수 있다.

 

 

정수 x와 y가 주어졌을 때 x를 y로 만드는 최소로 연산을 수행할 수 있는 경우를 구하는 프로그램을 작성하라. 만약 최소로 연산을 수행할 수 있는 경우의 수가 여럿 있으면, 이 중에서 ASCII code로 오름차순 정렬 하였을 경우 먼저 나오는 경우를 출력한다. 만약 불가능할 경우 ":-(" 를(큰 따옴표 제외) 출력한다.


입력

입력은 1이상 1,000,000,000 이하의 정수 x와 y가 주어진다.

출력

만약 x를 y로 만드는 것이 불가능할 경우 ":-("를 출력한다. 만약 x와 y가 같을 경우 "NONE"을 출력한다. 마지막으로 가능할 경우에는 사용한 연산을 순서대로 출력한다. 출력되는 문자는 '+', '-', '*', '/' 중 하나여야 한다. 만약 여럿이 있을 경우 ASCII code기반으로 오름차순 정렬 할 경우 먼저 나오는 경우를 출력해야한다. 사용하는 문자들에 대해서 ASCII code가 가장 작은 것은 '*' 이며, '+', '-', '/' 순이다.

예제 #1

7 392
+*+

예제 #2

7 256
/+***

예제 #3

4 256
**

예제 #4

7 7
NONE

예제 #5

7 9
:-(
로그인해야 코드를 작성할 수 있어요.