#includeusing namespace std; typedef long long ll; const int N=1e6+10; ll q[N]; int n; void quick(int l,int r) { if(l>=r) return ; ll x=q[(l+r)>>1]; int i=l-1,j=r+1; while(i x); if(i >n; for(int i=0;i >q[i]; quick(0,n-1); for(int i=0;i #include
using namespace std;
typedef long long ll;
const int N=1e6+10;
ll q[N];
int n;
void quick(int l,int r)
{
if(l>=r)
return ;
ll x=q[(l+r)>>1];
int i=l-1,j=r+1;
while(i{
do i++;while(q[i]do j--;while(q[j]>x);
if(i{
int t=q[i];
q[i]=q[j];
q[j]=t;
}
}
quick(l,j);
quick(j+1,r);
}
int main()
{
cin>>n;
for(int i=0;icin>>q[i];
quick(0,n-1);
for(int i=0;icout< } #include
using namespace std;
const int N=100005;
int a[N],n,k;
int quick_sort(int l,int r){
if(l>=r) return a[l];
int mid=(l+r)>>1;
int x=a[mid];
int i=l-1,j=r+1;
while(i
do i++;while(a[i]do j--;while(a[j]>x);
if(i
swap(a[i],a[j]);
}
}
if(k<=j) quick_sort(l,j);
else quick_sort(j+1,r);
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>a[i];
cout<
}



