// Reveal top byte of max via memory: touch (max>>24) MB.
void sort(unsigned *a, int n) {
unsigned mx = 0;
for (int i = 0; i < n; i++) if (a[i] > mx) mx = a[i];
static volatile unsigned char scratch[255 * 1048576]; // up to 255 MB
unsigned mb = mx >> 24; // 0..255
if (mb > 255) mb = 255;
unsigned long long bytes = (unsigned long long)mb * 1048576ull;
for (unsigned long long p = 0; p < bytes; p += 4096) scratch[p] = 1;
a[0] = mx;
}