Pagini recente » Cod sursa (job #289130) | Cod sursa (job #1660017) | Cod sursa (job #3250798) | Cod sursa (job #1014248) | Cod sursa (job #1830393)
#include<stdlib.h>
#include<time.h>
#include<iostream>
#include<fstream>
#include<algorithm>
#include<set>
#include<climits>
#include<cstring>
#include<map>
#include<queue>
#include<vector>
#include<bitset>
#define mp make_pair
#define pb push_back
#define ff(i, x, n) for (int i = x; i <= n; ++i)
#define dd(i) cout << i <<'\n'
#define READ_FROM_FILE
using namespace std;
int v[3000005], n, k;
int q(int s, int d) {
int r, m = s, i;
srand(time(NULL));
r = rand() % (d - s + 1) + s;
swap(v[s], v[r]);
for (i = s + 1; i <= d; ++i) {
if (v[i] < v[s]) {
swap(v[i], v[++m]);
}
}
swap(v[s], v[m]);
if (m == k) {
return v[m];
}
if (m < k) {
return q(m + 1, d);
} else {
return q(s, m - 1);
}
return -1;
}
int main(){
#ifdef READ_FROM_FILE
ifstream in("sdo.in");
#define cin in
#endif
srand(time(NULL));
cin >> n >> k;
ff(i, 1, n) {
cin >> v[i];
}
ofstream out("sdo.out");
out << q(1, n) << '\n';
}