全部RE
查看原帖
全部RE
1211961
Make_Shit_Code楼主2025/2/4 10:22
#include <iostream>
#include <algorithm>
using namespace std;
int n,k;
const int N=5000000+10;
int a[N];
int choose_k(int l,int r,int k)
{
	if(l==r)return a[l];
	
	int x=a[l+r>>1];
	int i=l-1,j=r+1;
	
	while(i<j)
	{
		do i++;while(a[i]<x);
		do j--;while(a[j]>x);
		if(i<j)swap(a[i],a[j]);
	}
	
	int sl=j-l+1;
	if(k<=sl)choose_k(l,j,k);
	else choose_k(j+1,r,k-sl);
	
}
int main()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++)
	scanf("%d",&a[i]);
	cout<<choose_k(1,n,k+1);
}
2025/2/4 10:22
加载中...