yyc_qwq @ 2022-12-25 17:26:27
#include<iostream>
#include<math.h>
using namespace std;
int a[5000005],n,k;
void sort(int l,int r){
int i = l,j = r,mid = a[(l+r)/2];
do{
while(a[j] > mid) j--;
while(a[i] < mid) i++;
if(i<=j){
swap(a[i],a[j]);
i++,j--;
}
}while(i <= j);
if(k <= j) sort(l,j);
else if(i <= k) sort(i,r);
else {
cout << a[j+1] << endl;
exit(0);
}
}
int main(){
cin >> n >> k;
for(int i=0;i<n;i++) cin >> a[i];
sort(0,n-1);
return 0;
}
by RP_INT_MAX @ 2022-12-25 17:28:53
@yangyuecong 加这句话。
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
by RP_INT_MAX @ 2022-12-25 17:29:32
@yangyuecong 或者干脆把 cin/cout
换掉,您的输入太慢了。
by Asimplename @ 2022-12-25 17:46:31
这是
by Terrible @ 2022-12-25 17:50:09
请用 BFPRT 算法保证你的程序复杂度不会退化。
一般来说,这个分治是期望
by yyc_qwq @ 2022-12-25 19:30:43
谢谢(AC了)