P8044 [COCI 2015/2016 #4] YODA
题目背景
很久很久以前,在一个遥远的星系里,一个巨大的整数碰撞正在发生。
题目描述
当两个整数碰撞时会发生什么?先将数位较少的数前不断添加前导 $0$ 直到和数位较高的数的数位数量相同为止。然后,从两个数的最低位开始,每次将两个数的对应数位进行比较,并删去较小的那个数位(如果这两个数位相等则**不执行任何操作**),不断向高数位执行上述操作,直到最高位为止。此时,将这两个数中没有删去的数位按顺序依次拼接,可以得到两个新数。
例如,对于 $456328$ 和 $284315$ 这两个数,这两个的碰撞过程如下所示:
| $4$ | $\sout{~5~}$ | $6$ | $3$ | $2$ | $8$ |
| :-: | :-: | :-: | :-: | :-: | :-: |
| $\sout{~2~}$ | $8$ | $\sout{~4~}$ | $3$ | $\sout{~1~}$ | $\sout{~5~}$ |
不难看出,碰撞之后得到的两个新数为 $46328$ 和 $83$。
现在给定两个数 $n,m$,请求出这两个数进行碰撞之后分别得到的新数。如果某个数在进行碰撞之后,其数位都已经被删空了,则在输出中输出一行字符串 `YODA`。具体见『输出格式』部分。
输入格式
第一行输入一个整数 $n$,表示要进行碰撞的第一个数。
第二行输入一个整数 $m$,表示要进行碰撞的第二个数。
输出格式
输出共两行。
第一行中,如果 $n$ 的数位已经删空,则输出一个字符串 `YODA`,否则输出一个整数,表示 $n$ 进行碰撞后得到的新数。
第二行中,如果 $m$ 的数位已经删空,则输出一个字符串 `YODA`,否则输出一个整数,表示 $m$ 进行碰撞后得到的新数。
说明/提示
**【样例解释 2】**
对于样例 $2$,这两个数碰撞的过程如下所示:
| $6$ | $\sout{~5~}$ | $7$ | $\sout{~4~}$ | $3$ |
| :----------: | :----------: | :----------: | :----------: | :----------: |
| $\sout{~0~}$ | $9$ | $\sout{~6~}$ | $5$ | $\sout{~1~}$ |
因此,碰撞之后得到的两个新数分别是 $673$ 和 $95$。
**【数据范围】**
对于 $30\%$ 的数据,保证 $n$ 和 $m$ 由三位数字组成。
对于所有数据,$1\leqslant n,m\leqslant 10^9$。
**【题目来源】**
本题来源自 **_[COCI 2015-2016](https://hsin.hr/coci/archive/2015_2016/) [CONTEST 4](https://hsin.hr/coci/archive/2015_2016/contest4_tasks.pdf) T1 YODA_**,按照原题数据配置,满分 $50$ 分。
由 [Eason_AC](https://www.luogu.com.cn/user/112917) 翻译整理提供。