#include <stdio.h>
void swap(int* arr, int x, int y) {
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
int partition(int* arr, int p, int r) {
int x = arr[r];
int i = p - 1;
for (int j = 0; j < r; j++) {
if (arr[j] <= x) {
i++;
swap(arr, i, j);
}
}
i++;
swap(arr, i, r);
return i;
}
void quick(int* arr, int p, int r) {
if (p < r) {
int q = partition(arr, p, r);
quick(arr, p, q - 1);
quick(arr, q + 1, r);
}
}
int main(void) {
// your code goes here
int n = 0;
int* arr
= (int*)malloc(sizeof(int)*5000); int cnt = 1;
for (int i = 0; i < n; i++) {
if (i % 5000 == 0) {
realloc(arr
, sizeof(int) * 5000 * cnt
); cnt++;
}
}
quick(arr, 0, n - 1);
for (int i = 0; i < n; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CnZvaWQgc3dhcChpbnQqIGFyciwgaW50IHgsIGludCB5KSB7CglpbnQgdGVtcCA9IGFyclt4XTsKCWFyclt4XSA9IGFyclt5XTsKCWFyclt5XSA9IHRlbXA7Cn0KaW50IHBhcnRpdGlvbihpbnQqIGFyciwgaW50IHAsIGludCByKSB7CglpbnQgeCA9IGFycltyXTsKCWludCBpID0gcCAtIDE7Cglmb3IgKGludCBqID0gMDsgaiA8IHI7IGorKykgewoJCWlmIChhcnJbal0gPD0geCkgewoJCQlpKys7CgkJCXN3YXAoYXJyLCBpLCBqKTsKCQl9Cgl9CglpKys7Cglzd2FwKGFyciwgaSwgcik7CglyZXR1cm4gaTsKfQoKdm9pZCBxdWljayhpbnQqIGFyciwgaW50IHAsIGludCByKSB7CglpZiAocCA8IHIpIHsKCQlpbnQgcSA9IHBhcnRpdGlvbihhcnIsIHAsIHIpOwoJCXF1aWNrKGFyciwgcCwgcSAtIDEpOwoJCXF1aWNrKGFyciwgcSArIDEsIHIpOwoJfQp9CmludCBtYWluKHZvaWQpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCWludCBuID0gMDsKCXNjYW5mKCIlZCIsICZuKTsKCWludCogYXJyID0gKGludCopbWFsbG9jKHNpemVvZihpbnQpKjUwMDApOwoJaW50IGNudCA9IDE7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCXNjYW5mKCIlZCIsIGFyciArIGkpOwoJCWlmIChpICUgNTAwMCA9PSAwKSB7CgkJCXJlYWxsb2MoYXJyLCBzaXplb2YoaW50KSAqIDUwMDAgKiBjbnQpOwoJCQljbnQrKzsKCQl9Cgl9CglxdWljayhhcnIsIDAsIG4gLSAxKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJcHJpbnRmKCIlZCIsIGFycltpXSk7Cgl9CglyZXR1cm4gMDsKfQo=