해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
각 양의 정수 n에 대해, n의 십진 표기에서 모든 숫자 a를 숫자 (9 - a)로 바꾸어 n에서 얻는 정수 ψ(n)를 생각하자. ψ(n)를 n의 반사라고 한다. 예를 들어, 192의 반사는 807이다. 맨 앞의 영들(있는 경우)은 생략해야 한다는 점에 유의한다. 따라서 9의 반사는 0이고, 91의 반사는 8이다.
어떤 수와 그 수의 반사의 곱을 그 수의 무게라고 하자. 따라서 수 10의 무게는 10·89 = 890이다.
주어진 범위 [l, r]에서 수들의 무게의 최댓값을 구해야 한다(경계도 포함된다).
입력에는 범위의 경계인 공백으로 구분된 두 정수 l와 r (1 ≤ l ≤ r ≤ 109)가 주어진다.
l ≤ n ≤ r인 경우에 대한 곱 n·ψ(n)의 최댓값인 하나의 정수를 출력한다.
C++에서 64-bit 정수를 읽거나 쓸 때 %lld 지정자를 사용하지 말아야 한다. cout을 사용하는 것이 좋다(%I64d을 사용해도 된다).
8 10
890
3 7
20
1 1
8
세 번째 예제에서 8의 무게는 8·1 = 8이고, 9의 무게는 9·0 = 0이며, 10의 무게는 890이다.
따라서 곱의 최댓값은 890이다.