Pagini recente » Cod sursa (job #1070273) | Cod sursa (job #736549)
Cod sursa(job #736549)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define NMAX 3000005
int A[NMAX], N, K;
int find(int K){
int left = 0, right = N - 1, mid;
while(left <= right){
mid = left + (right - left) / 2;
swap(A[mid], A[right]);
int pos = left;
for(int i = left; i < right; ++i){
if(A[i] < A[right])
swap(A[i], A[pos++]);
}
swap(A[right], A[pos]);
mid = pos;
if((mid - left + 1) < K)
left = mid + 1, K = K - (mid - left);
else
right = mid - 1;
}
return -1;
}
int main(){
ifstream in("sdo.in");
ofstream out("sdo.out");
in >> N >> K;
for(int i = 0; i < N; ++i)
in >> A[i];
find(K);
out << A[K-1] << endl;
return 0;
}