题目描述
0 以上の整数 x に対して、g1(x), g2(x), f(x) を次のように定めます。
- g1(x)= x を十進法で表したときの各桁の数字を大きい順に並び替えてできる整数
- g2(x)= x を十進法で表したときの各桁の数字を小さい順に並び替えてできる整数
- f(x)=g1(x)−g2(x)
例えば g1(314)=431, g2(3021)=123, f(271)=721−127=594 です。先頭の余分な 0 は無視されることに注意してください。
整数 N,K が与えられるので、a0=N, ai+1=f(ai) (i≥ 0) で定まる数列の aK を求めてください。
输入格式
入力は以下の形式で標準入力から与えられる。
N K
输出格式
aK を出力せよ。
题目大意
定义如下函数:
- g1(x) 为 x 在十进制下的数位按照降序排列形成的数;
- g2(x) 为 x 在十进制下的数位按照升序排列形成的数;
- f(x)=g1(x)−g2(x)。
给定 N,K,对于序列 a0=N,ai=f(ai−1)。求出 aK。
314 2
693
1000000000 100
0
6174 100000
6174
提示
制約
- 0 ≤ N ≤ 109
- 0 ≤ K ≤ 105
- 入力は全て整数
Sample Explanation 1
- a0=314 - a1=f(314)=431−134=297 - a2=f(297)=972−279=693 です。
Sample Explanation 2
- a0=1000000000 - a1=f(1000000000)=1000000000−1=999999999 - a2=f(999999999)=999999999−999999999=0 - a3=f(0)=0−0=0 - ⋮ となります。