if(l >= r) return;
int pivot = a[(l + r) / 2];
int i = l, j = r;
while(i <= j){
while(a[j] > pivot && i <= j){
--j; ++count;
}
while(a[i] < pivot && i <= j){
++i; ++count;
}
if(i <= j){
std::swap(a[i], a[j]);
++i; --j;
}
}
qsortm(l, j);
qsortm(i, r);
}
