RT,今天THUPC C题
#include<bits/stdc++.h>
using namespace std;
int t,a[100005],n,x,b[100005];
int a1,a2,a3;
bool check(int p){
if(x==1){
if(p<=a2&&p<=a3)return 1;
return 0;
}
if(x==n){
if(p<=a2&&p<=a1)return 1;
return 0;
}
int num=(p<=a1)+(p<=a2)+(p<=a3);
if(num<=1)return 0;
return 1;
}
int main(){
cin>>t;
while(t--){
scanf("%d%d",&n,&x);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
b[i]=a[i];
}
if(n==2){
cout<<max(a[1],a[2])<<'\n';
continue;
}
if(n==1){
cout<<a[1]<<'\n';
continue;
}
sort(b+1,b+n+1);
int l=b[3],r=1000000005;
a1=a[x-1],a2=a[x],a3=a[x+1];
int mid, ans=l;
while(l<r){
mid=(l+r)>>1;
if(check(mid)){
ans=mid;
l=mid+1;
}
else r=mid;
}
cout<<ans<<'\n';
}
return 0;
}