def longest_ones(nums, k):
    left = zeros = best = 0
    for right, value in enumerate(nums):
        zeros += int(value == 0)
        while zeros > k:
            zeros -= int(nums[left] == 0)
            left += 1
        best = max(best, right - left + 1)
    return best
