package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 * 
 * @param input int整型一维数组 
 * @param k int整型 
 * @return int整型一维数组
*/
func GetLeastNumbers_Solution( input []int ,  k int ) []int {
    headify(input, len(input)-1)
    result:=[]int{}
    for i:=0;i<k;i++{
        result=append(result, input[0])
        input=input[1:]
        headify(input, len(input)-1)
    }
    return result
}

func headify(arr []int,size int){
    for i:=(size-1);i>=0;i--{
        shift(arr, i, size)
    }
}

func shift(arr []int,i int,len int){
    left:=2*i+1
    right:=2*i+2
    if right<len && arr[right]<arr[i]{
        arr[i],arr[right]=arr[right],arr[i]
    }
    if left<len && arr[left]<arr[i]{
        arr[i],arr[left]=arr[left],arr[i]
    }
}