4WA1AC,求助
查看原帖
4WA1AC,求助
457431
Li_wenjie楼主2021/9/2 20:12
#include<bits/stdc++.h>
using namespace std;
int a[5000001],n,k;
int qsort(int L,int R,int k)
{
	if(L==R) 
	{
		return a[L];	
	}
	int num=a[rand()%(R-L+1)+L];
	int i=L,j=R;
	while(i<=j)
	{
		while(a[i]<num)i++;
		while(a[j]>num)j--;
		if(i<=j) 
		{
			swap(a[i],a[j]);
			i++;
			j--;
			
		}
	}
	if(j-L+1>=k)
		return qsort(L,j,k);
	else if(k<=i-1) return num;
	else return qsort(i,R,k-(i-L));
} 
int main()
{
	scanf("%d%d",&n,&k);
	k++;
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	cout<<qsort(1,n,k);
}
2021/9/2 20:12
加载中...