Здравствуйте. Помогите найти пожалуйста ошибку в реализации поиска k-ого элемента в массиве по неубыванию для чисел значение которых равно формуле:
где A,B,C ,a1,a2 мы задаем сами.
#include "stdafx.h"
#include <iostream>
using namespace std;
int partition(int a[], int left, int right)
{
int marker = left;
for (int i = left; i <= right; i++)
{
if (a[i] <= a[right])
{
swap(a[marker], a[i]);
marker++;
}
}
return marker - 1;
}
int finder(int a[] , int k , int n)
{
int left = 0, right = n - 1;
while (true)
{
int mid = partition(a, left, right);
if ((mid) == (k))
{
return a[mid];
}
else if (k < mid)
{
right = mid - 1;
}
else
{
left = mid + 1;
}
}
}
int main()
{
int n, k;
int a[3 * 10000], A, B, C;
cin >> n >> k;
k--;
if (n == 1)
{
cin >> A >> B >> C >> a[0];
in.close();
}
else
{
cin >> A >> B >> C >> a[0] >> a[1];
for (int i = 2; i < n; i++)
{
a[i] = A * a[i - 2] + B * a[i - 1] + C;
}
}
if (n == 1)
{
cout << a[0];
}
else
{
cout << finder(a, i, n) << endl;
}
return 0;
}

(mid) == (k)так не делают, сравнение делают с точностью до эпсилон. Возможно отсутствие эпсилон не позволяет вам попасть в диапазон. – nick_n_a Oct 18 '17 at 11:002получили в качестве 3-ей поря́дковой стати́стики вместо800005для{1, 2, 800005, 240001900005, 72000730002500005}– jfs Oct 19 '17 at 15:26