最后一点超时了,为什么QWQ
查看原帖
最后一点超时了,为什么QWQ
596448
_Ayanami_Rei_楼主2022/1/18 11:31
#include<iostream>
using namespace std;
int a[5000003];
int n,k,ans;

void qsort(int l,int r){
	if(l==r){
		ans=a[l];
		return ;
	}
	int i=l,j=r,flag=a[(i+j)/2];
	do{
		while(a[i]<flag) ++i;
		while(a[j]>flag) --j;
		if(i<=j){
			int tmp=a[i];
			a[i]=a[j];
			a[j]=tmp;
			++i;
			--j;
		}
	}while(i<=j);
	if(j>=k) qsort(l,j);
	else if(i<=k) qsort(i,r);
	else qsort(j+1,i-1);
}

int main(){
	cin>>n>>k;
	for(int i=0;i<=n-1;++i){
		cin>>a[i];
	}
	qsort(0,n-1);
	cout<<ans<<" ";
	return 0;
}
2022/1/18 11:31
加载中...