求hack
  • 板块灌水区
  • 楼主54ycy
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/12/15 16:27
  • 上次更新2024/12/15 19:42:48
查看原帖
求hack
993828
54ycy楼主2024/12/15 16:27

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;
}

2024/12/15 16:27
加载中...