最后两个点T了
查看原帖
最后两个点T了
749192
Citrusn楼主2022/8/13 14:51
#include <iostream>
#include <iomanip>
using namespace std;
const int N=5e6+5;
int a[N],n,k;
void QS(int l,int r)
{
	int b=a[(l+r)>>1],ll=l,rr=r;
	while(ll<=rr)
	{
		while(a[ll]<b) ++ll;
		while(a[rr]>b) --rr;
		if(ll<=rr) swap(a[ll++],a[rr--]);
	}
	if(l<rr) QS(l,rr);
	if(r>ll) QS(ll,r);
}
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	QS(1,n);
	cout<<a[k+1]<<" ";
	return 0;
}
2022/8/13 14:51
加载中...