static void heapify(int[]A, int i) {
        int left=i*2+1;
        int right=i*2+2;
        int n=A.length;
        int x=i;
        if (left<n&&A[left]>A[x])
            x=left;
        if (right<n&&A[right]>A[x])
            x=right;
        if (i!=x) {
            swap(A,i,x);
            heapify(A,x);
        }
    }