k-th ordinal statistics

You need to find all k-th ordinal statistics in the range from k1 to k2 inclusive . The input is the size of the array n k1 and k2 interval boundaries The numbers a, b, c for which the following array elements a1 and a2 will be generated are the 0th and 1st elements of the array

#include <vector>
#include <fstream>
#include <cmath>

using namespace std;



void quick_sort(signed long int *a, int left, int right, int k1, int k2) {

    // функция поиска k-той статистики на основе быстрой сортировки
    if (left == right) return;

    if (k2 >= left && k1 <= right) {

        int i = left;
        int j = right;

        signed long int piv = a[(left + right) / 2];

        while (i <= j) {
            while (a[i] < piv) ++i;
            while (a[j] > piv) --j;
            if (i <= j) {
                signed long int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
                ++i;
                --j;
            }
        }
        if (left < j) quick_sort(a, left, j, k1, k2);
        if (i < right) quick_sort(a, i, right, k1, k2);
    }

}


int main()
{
    ifstream in;
    in.open("input.txt");
    ofstream out;
    out.open("output.txt");

    int n, k1, k2, a, b, c, a1, a2;
    in >> n >> k1 >> k2;
    in >> a >> b >> c >> a1 >> a2;
    k1--; k2--;

    signed long int *arr = new signed long int[n];
    arr[0] = a1;
    arr[1] = a2;
    int l = k1, r = k2; // инициализация всего

    if (n > 2) {
        while (l <= n) {
            if (double(log2(abs(a*arr[l - 2] + b * arr[l - 1] + c))) <= 32) {
                arr[l] = a * arr[l - 2] + b * arr[l - 1] + c;    
                l++;
            } // генерация новых элементов массива
        }
    }


    quick_sort(arr, 0, n - 1, k1, k2);

    for (int i = k1; i <= k2; i++) {
        if (double(log2(abs(arr[i]))) <= 32) {
            out << arr[i] << " "; // вывод
        }
    }

    in.close();
    out.close();

}

написал такой код. Все хорошо работает, но не корректно работает на отрезке от 1 до 3
Не могу понять что не правильно сделал
помогите уже 3-ий день сижу над этим
Author: artem_tmm, 2020-03-28