Pagini recente » Cod sursa (job #262886) | Cod sursa (job #238203) | Cod sursa (job #2498363) | Cod sursa (job #563694) | Cod sursa (job #2939337)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
const int maxn = 1000;
int v[maxn];
int quicksort(int st, int dr, int k) {
if (st >= dr)
return v[min(st, dr)];
int pivot = (st + dr)/2;
swap(v[pivot], v[dr - 1]);
int firstFree = st;
for (int i = st; i < dr - 1; i++) {
if (v[i] <= v[dr - 1]) {
swap(v[i], v[firstFree]);
firstFree++;
}
}
swap(v[firstFree], v[dr - 1]);
if (firstFree == k)
return v[firstFree];
else if (firstFree > k)
return quicksort(st, firstFree, k);
else
return quicksort(firstFree + 1, dr, k);
}
int main() {
int n, k;
fin >> n >> k;
k--;
for (int i = 0; i < n; i++)
fin >> v[i];
fout << quicksort(0, n, k);
return 0;
}