Pagini recente » Cod sursa (job #2106823) | Cod sursa (job #2354790) | Cod sursa (job #1730051) | Cod sursa (job #1115200) | Cod sursa (job #1299784)
#include <fstream>
#include <cstdlib>
using namespace std;
void quickSort(int left, int right, int k);
int a[30000005];
int main()
{
srand(time(NULL));
int n, k, i;
ifstream f("sdo.in");
f >> n >> k;
for (i = 0; i < n; i++)
f >> a[i];
f.close();
quickSort(0, n - 1, k);
ofstream g("sdo.out");
g << a[k - 1];
g.close();
return 0;
}
void quickSort(int left, int right, int k)
{
int i = left, j = right;
int pivot = a[left + (rand() % (right - left) + 1)];
int aux;
while (i <= j)
{
while (a[i] < pivot)
i++;
while (a[j] > pivot)
j--;
if (i <= j)
{
aux = a[i];
a[i] = a[j];
a[j] = aux;
i++;
j--;
}
}
if (left < j && k >= left + 1 && k <= j + 1)
quickSort(left, j, k);
else if (i < right && k >= i + 1 && k <= right + 1)
quickSort(i, right, k);
}