[BOJ 1537] 새로운 연산자
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
4
Time limit:
2.0s
Memory limit:
128M
Problem types
Allowed languages
양의 정수 N이 주어졌을 때, 다음과 같은 다섯 개의 함수를 정의 했다.</p>
- Sum(N)은 N의 모든 자리수를 더한 값이다.
- Prod(N)은 N의 모든 자리수를 곱한 값이다.
- Prod3(N)은 N의 자리수중 가장 큰 3개를 곱한 값이다. 만약 N이 3자리보다 작다면 Prod3(N) = Prod(N)이다.
- Smallest(N)은 N의 가장 작은 자리수이다.
- First(N)은 N의 가장 맨 앞 자리수이다.
세준이는 @라는 연산자를 정의 했다.
X@Y = 5Prod3(X) + First(X) Sum(Y) + Smallest(Y)이다.
- Sum(47) = 4+7 = 11
- Prod(2322) = 232*2 = 24
- Prod3(2322) = 322 = 12
- Prod3(47) = Prod(47) = 4*7 = 28
- Smallest(427) = 2
- First(427) = 4
- 12034@217 = 5 (432) + 1 (2+1+7) + 1 = 131
올바른 식은 다음과 같이 재귀적으로 정의 된다.
- X는 올바른 식이다.
- 만약, A가 올바른 식이고, B가 올바른 식이라면, A@B도 올바른 식이다.
- 위의 규칙에 의해서 생성되지 않은 식은 모두 올바르지 않은 식이다.
X와 G가 주어졌을 때, X를 G로 만드는 올바른 식을 구하는 프로그램을 작성하시오. 만약 불가능하다면 -1을 출력한다.
입력 형식
첫째 줄에 X와 G가 주어진다. X는 1,000,000보다 작거나 같은 자연수이고, G는 2,000,000,000보다 작거나 같은 자연수이다.
출력 형식
첫째 줄에 올바른 식에 들어가는 @의 최소 값을 출력한다.
예제 입력 1
374 659
예제 출력 1
2
예제 입력 2
13 13
예제 출력 2
0
예제 입력 3
374 465
예제 출력 3
1
예제 입력 4
374 469
예제 출력 4
2
예제 입력 5
374 1024
예제 출력 5
8
예제 입력 6
654321 12
예제 출력 6
10
예제 입력 7
654321 1234567
예제 출력 7
-1
Comments