Pagini recente » Cod sursa (job #2209677) | Cod sursa (job #270724) | Cod sursa (job #278055) | Cod sursa (job #8459) | Cod sursa (job #2323896)
#include <fstream>
#define FILE_NAME "sdo"
using namespace std;
ifstream in (FILE_NAME".in");
ofstream out (FILE_NAME".out");
const int N_MAX = 3000005;
int N, poz;
unsigned a[N_MAX];
void quickSelect(int stg, int drp) {
if (stg >= drp)
return;
int i = stg, j = drp;
unsigned pivot = a[(stg + drp) / 2];
while (i <= j) {
while (a[i] < pivot)
++i;
while (a[j] > pivot)
--j;
if (i <= j)
swap(a[i++], a[j--]);
}
if (poz <= j)
quickSelect(stg, j);
else if (poz >= i)
quickSelect(i, drp);
}
int main() {
in >> N >> poz;
for (int i = 1; i <= N; ++i)
in >> a[i];
quickSelect(1, N);
out << a[poz];
}