显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
const int N=1e5+10;
int T,n,a[N],x,b[N];
bool check(int v){
int cnt=0;
for(int i=1;i<=n;i++){
b[i]=(a[i]<v);
cnt+=b[i];
}
if(cnt<=2)return 1;
cnt=b[x];
if(x!=1)cnt+=b[x-1];
else cnt++;
if(x!=n)cnt+=b[x+1];
else cnt++;
return (cnt<=1);
}
void work(){
scanf("%d %d",&n,&x);
for(int i=1;i<=n;i++)scanf("%d",a+i);
if(n==1){
printf("%d\n",a[1]);
}else if(n==2){
printf("%d\n",max(a[1],a[2]));
}else if(n==3){
printf("%d\n",max(max(a[1],a[2]),a[3]));
}else{
int l=0,r=1e9,mid;
while(l<r){
mid=(l+r+1)>>1;
if(check(mid))l=mid;// ans>=mid
else r=mid-1;
}
printf("%d\n",l);
}
return;
}
int main(){
freopen("thupc_2025_pre_machine.in","r",stdin);
freopen("thupc_2025_pre_machine.out","w",stdout);
scanf("%d",&T);
while(T--)work();
return 0;
}