식의 값
시간 제한1초메모리 제한128 MB
시작값 a에서 연산 x#y = (x의 자릿수 합)*(y의 최대 자릿수) + (y의 최소 자릿수)만 사용해 K를 만드는 최소 연산 횟수를 구하고, 불가능하면 NEVAR를 출력한다.
문제
연산 는 임의의 두 양의 정수에 대해 다음과 같이 정의된다.
두 양의 정수 , 에 대해
예를 들어 이지만, 이다.
이 문제에서 말하는 식은 다음 중 하나이다.
- 하나의 변수
a(그 값은 양의 정수), 또는 (식 # 식)꼴로 쓸 수 있는 것.
예를 들어 다음은 모두 이 문제에서 말하는 식이다.
a(a#a)((a#a)#a)(a#((a#a)#((a#a)#a)))
식의 값은 변수 a 의 값과 위 연산 로 정해진다. 변수 a 하나로만 이루어진 식의 값은 이고, (식1 # 식2) 의 값은 두 부분식의 값에 연산 를 적용한 결과이다.
주어진 의 값에 대해, 값이 ( 는 양의 정수) 가 되는 식을 만드는 데 필요한 연산 의 최소 개수를 구하여라.
입력
양의 정수 두 개가 주어진다. 정수 변수 의 값 () 과 식의 목표 값 () 이다.
출력
필요한 연산 의 최소 개수를 출력한다. 주어진 의 값으로는 어떤 식의 값도 가 될 수 없다면, 대신 NEVAR 를 출력한다.