// Reveal fraction of adjacent pairs already in non-decreasing order.
// p ~= 256*(#inorder pairs)/(n-1). mem(KB) ~= 524296 + p.
// random ~128, nearly-sorted ~256, reverse ~0.
static volatile unsigned char pages[257 * 4096];
void sort(unsigned *a, int n) {
unsigned long long c = 0;
for (int i = 1; i < n; i++) if (a[i] >= a[i-1]) c++;
int p = (int)(c / ((unsigned long long)(n - 1) / 256));
for (int i = 0; i <= p; i++) pages[i * 4096] = (unsigned char)i;
}