fn push(x: i32) {
let mut heap = [1, 2, 3, 4, 5, 6, 7, 8];
let sz = 0;
let mut i = sz + 1;
while(i > 0) {
let p = (i -1) / 2;
if heap[p] <= x {
break;
}
heap[i] = heap[p];
i = p;
}
heap[i] = x;
}
fn pop() {
let mut heap = [1, 2, 3, 4, 5, 6, 7, 8];
let sz = 0;
let ret = heap[0];
let x = heap[heap.len() -1];
let mut i = 0;
while(i * 2 + 1 < sz) {
let mut a = i * 2 + 1;
let mut b = i * 2 + 2;
if (b < sz && heap[b] < heap[a]) {
a = b;
}
if (heap[a] >= x) {
break;
}
heap[i] = heap[a];
i = a;
}
heap[i] = x;
}