Pagini recente » Cod sursa (job #2317190) | Cod sursa (job #462551) | Cod sursa (job #1056055) | Cod sursa (job #884783) | Cod sursa (job #1513277)
#include <fstream>
#include <cstdlib>
using namespace std;
#define NMax 3000005
ifstream f("sdo.in");
ofstream g("sdo.out");
int n,k;
int v[NMax];
void solve(int st, int dr)
{
if(st >= dr) return;
int poz = rand() % (dr-st+1) + st;
int val = v[poz];
int nr = 0;
swap(v[poz], v[dr]);
for(int i=st;i<dr;++i) if(v[i] <= val) swap(v[st+(++nr)-1], v[i]);
swap(v[st+nr], v[dr]);
if(st+nr == k) return;
if(st+nr > k) solve(st, st+nr-1);
else solve(st+nr+1, dr);
}
int main()
{
f>>n>>k;
for(int i=1;i<=n;i++) f>>v[i];
srand(74595);
solve(1,n);
g<<v[k]<<"\n";
f.close();
g.close();
return 0;
}