Pagini recente » Cod sursa (job #2090847) | Cod sursa (job #2100820) | Cod sursa (job #2214526) | Cod sursa (job #1505798) | Cod sursa (job #2944547)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 4e6;
unsigned int input[1 + NMAX]; int n, k;
void quick_select (int left, int right) {
int lp = left, rp = right;
int pivot = left + rand () % (right - left + 1);
while (input[lp] < input[pivot])
lp ++;
while (input[rp] > input[pivot])
rp --;
while (lp < rp) {
swap (input[lp], input[rp]);
do
lp ++;
while (input[lp] < input[pivot]);
do
rp --;
while (input[rp] > input[pivot]);
}
if (k < pivot)
quick_select (left, pivot);
if (pivot < k)
quick_select (pivot, right);
}
int main()
{
ifstream in ( "statisticiordine.in");
ofstream out ( "statisticiordine.out");
in >> n >> k;
for (int i = 1; i <= n; i ++)
in >> input[i];
quick_select (1, n);
out << input[k];
return 0;
}