voidheapify(int i, int size){ int l = i*2+1; while(l < size){ int best = (l+1 < size && v[l+1] > v[l]) ? l+1 : l; best = (v[best] > v[i]) ? best : i; if(best == i) break; swap(best, i); i = best; l = i*2+1; } }
voidswap(int a, int b){ int tmp = v[a]; v[a] = v[b]; v[b] = tmp; }