package main import ( "fmt" "strings" ) func main() { var s string _, _ = fmt.Scan(&s) // 配列にする nums := strings.Split(s, "") // 後ろから最大を探す top := int(nums[0][0] - '0') max := 0 maxI := -1 for i := len(nums) - 1; i > 0; i-- { if max < int(nums[i][0]-'0') { max = int(nums[i][0] - '0') maxI = i } } if max > top { // 先頭が最大でないなら入れ替える nums[0], nums[maxI] = nums[maxI], nums[0] } else if len(nums) >= 2 { // 先頭が最大かつ2番目の数字があるなら、2番目と最大を入れ替える nums[1], nums[maxI] = nums[maxI], nums[1] } for _, v := range nums { fmt.Print(v) } fmt.Println() }