import Ġkotlin . test . assertEquals Ċ Ċ object ĠK ata Ġ{ ĊĠĠĠ Ġfun Ġnext Small er ( value : ĠLong ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Array Ġ= Ġvalue . toString (). toCharArray () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġvalue Array . size Ġ- Ġ 1 Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġi Ġdown To Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( j Ġ== Ġ 0 Ġ&& Ġvalue Array [ i ] Ġ== Ġ' 0 ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Character . get Numeric Value ( value Array [ j ]) Ġ> ĠCharacter . get Numeric Value ( value Array [ i ])) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Ġ= Ġvalue Array [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Array [ i ] Ġ= Ġvalue Array [ j ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Array [ j ] Ġ= Ġtmp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue Array . join ToString (" "). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain Ġ( args : ĠArray < String >) Ġ{ ĊĠĠĠ ĠassertEquals ( 8 9 5 4 7 2 6 , ĠK ata . next Small er ( 8 9 5 4 7 6 2 )) ĊĊĠĠĠ ĠassertEquals ( 1 2 , ĠK ata . next Small er ( 2 1 )) Ċ // ĠĠĠ ĠassertEquals ( 7 9 0 , ĠK ata . next Small er ( 9 3 5 )); ĊĠĠĠ ĠassertEquals ( 5 1 3 , ĠK ata . next Small er ( 5 3 1 )) ĊĠĠĠ ĠassertEquals (- 1 , ĠK ata . next Small er ( 1 0 2 7 )) ĊĊĠĠĠ ĠassertEquals ( 4 1 4 , ĠK ata . next Small er ( 4 4 1 )) ĊĠĠĠ ĠassertEquals ( 1 2 3 4 5 6 7 8 9 , ĠK ata . next Small er ( 1 2 3 4 5 6 7 9 8 )) Ċ }