60分 RE了
查看原帖
60分 RE了
671911
XHWxhw123楼主2023/5/9 20:30
#include<bits/stdc++.h>
#define MAXN 500010
using namespace std;

int x,y,tmp,a[MAXN],n,k;
bool flag=0;

int qspx(int l,int r)
{
	int mid=(l+r)/2;
	tmp=a[mid];
	x=l;y=r;
	if(flag)
		return 0;
	do
	{
		while(a[x]<tmp)
			x++;
		while(a[y]>tmp)
			y--;
		if(x<=y)
		{
			int r=a[x];
			a[x]=a[y];
			a[y]=r;
			x++;y--;
		}
	}
	while(x<=y);
	if(k<=y)
		qspx(l,y);
	else if(x<=k)
		qspx(x,r);
	else
	{
		cout<<a[y+1];
		flag=1;
		return 0;
	}
	return 0;
}

int main()
{
	cin>>n>>k;
	k++;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	qspx(1,n);
	return 0;
}
2023/5/9 20:30
加载中...