Pagini recente » Cod sursa (job #1259693) | Cod sursa (job #371345) | Cod sursa (job #2173368) | Cod sursa (job #2123244) | Cod sursa (job #2321114)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int sdo(vector<int> v, int k) {
int left = 0, right = v.size() - 1;
int m = v.size()/2 - 1;
int val = v[m];
vector<int> L;
vector<int> R;
for(int i = left; i <= right; ++i) {
if(v[i] <= val) L.push_back(v[i]);
else R.push_back(v[i]);
}
if(L.size() == k) return val;
if(k >= L.size()) return sdo(R, k - R.size());
return sdo(L, k);
}
int main()
{
int n, k;
vector<int> v;
ifstream in("sdo.in");
ofstream out("sdo.out");
in >> n >> k;
k--;
for(int i = 0; i < n; ++i) {
int x;
in >> x;
v.push_back(x);
}
out << sdo(v, k);
in.close(); out.close();
return 0;
}