Pagini recente » Cod sursa (job #719659) | Cod sursa (job #3242658) | Cod sursa (job #909198) | Cod sursa (job #457510) | Cod sursa (job #2564799)
#include <bits/stdc++.h>
using namespace std;
int N, K, a[3000003];
ifstream f("sdo.in");
ofstream g("sdo.out");
void QSort(int st, int dr);
int partitionare(int st, int dr);
int main() {
f >> N >> K;
for(int i = 1; i <= N; i++) {
f >> a[i];
}
QSort(1, N);
g << a[K] << "\n";
return 0;
}
void QSort(int st, int dr) {
int poz = partitionare(st, dr);
if(poz - st > 1)
QSort(st, poz - 1);
if(dr - poz > 1)
QSort(poz + 1, dr);
}
int partitionare(int st, int dr) {
int j = st - 1, p = a[dr];
for(int i = st; i <= dr; i++) {
if(p >= a[i]) swap(a[++j], a[i]);
}
return j;
}