Pagini recente » Cod sursa (job #2136170) | Cod sursa (job #2900731) | Cod sursa (job #1840718) | Cod sursa (job #2968167) | Cod sursa (job #2835448)
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
mt19937 rng(time(NULL));
int n,k,v[3000005];
int quickselect(int l,int r,int k)
{
if(l==r)
return v[l];
int lg=r-l+1;
int p=v[(l+r)/2];
int b=l,e=r;
while(b<=r&&v[b]<p)
b++;
while(e>=l&&v[e]>p)
e--;
while(b<e)
{
swap(v[b],v[e]);
//b++;
while(b<=r&&v[b]<p)
b++;
//e--;
while(e>=l&&v[e]>p)
e--;
}
if(k<=b)
return quickselect(l,b,k);
else
return quickselect(b+1,r,k);
}
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++)
fin>>v[i];
fout<<quickselect(1,n,k);
return 0;
}