CF86A Reflection

题目描述

对于每个正整数 $ n $,考虑整数 $ ψ(n) $,它是通过将 $ n $ 的每一个十进制数字 $ a $ 替换为数字 $ (9-a) $ 得到的。我们称 $ ψ(n) $ 是 $ n $ 的“反射”(reflection)。例如,$ 192 $ 的反射为 $ 807 $。注意,若有前导零应当省略。因此,$ 9 $ 的反射为 $ 0 $,$ 91 $ 的反射为 $ 8 $。 我们称一个数的“权值”(weight)为该数与其反射的乘积。因此,数 $ 10 $ 的权值为 $ 10\cdot 89=890 $。 你的任务是在给定区间 $ [l,r] $ 内(包含边界),找到权值最大的数。

输入格式

输入包含两个用空格分隔的整数 $ l $ 和 $ r $($ 1\leq l\leq r\leq 10^9 $),表示区间的上下界。

输出格式

输出一个整数:在 $ l\leq n\leq r $ 范围内,$ n\cdot ψ(n) $ 的最大值。 请不要在 C++ 中使用 %lld 读写 64 位整数,推荐使用 cout 或 %I64d。

说明/提示

在第三个样例中,$ 8 $ 的权值为 $ 8\cdot 1=8 $,$ 9 $ 的权值为 $ 9\cdot 0=0 $,$ 10 $ 的权值为 $ 890 $。 因此,最大的乘积值为 $ 890 $。 由 ChatGPT 5 翻译