二分TLE求助
查看原帖
二分TLE求助
1320943
Winter_and_Autumn楼主2024/12/24 13:08
#include<bits/stdc++.h>
using namespace std;
int n,a[5000005],k;
void qsort(const int L,const int R){
	int r=R,l=L,mid=a[(R+L)>>2];
	do{
		while(a[r]>mid)r--;
		while(a[l]<mid)l++;
		if(l<=r)swap(a[l],a[r]),l++,r--;
	}while(l<=r);
	//L<=r<=l<=R
	if(k<r+1)qsort(L,r);
	else if(k>l-1)qsort(l,R);
	else {
		cout<<a[r+1];
		return ;
	}
}
int main(){
	cin>>n>>k;
	for(int i=0;i<n;i++)cin>>a[i];
	qsort(0,n-1);
	return 0;
}
2024/12/24 13:08
加载中...