package q3507 import "math" func minimumPairRemoval(nums []int) int { var nOp int var op = func() bool { minP, minSum := 0, math.MaxInt sorted := true for i := range len(nums) - 1 { sum := nums[i] + nums[i+1] if sum < minSum { minSum = sum minP = i } if sorted && nums[i+1] < nums[i] { sorted = false } } if sorted { return false } nums[minP] += nums[minP+1] copy(nums[minP+1:], nums[minP+2:]) nums = nums[:len(nums)-1] return true } for op() { nOp++ } return nOp } var _ = minimumPairRemoval