https://ac.nowcoder.com/acm/contest/57358/F
二分判断
#include<iostream>
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
typedef long long ll;
ll a[1000005];
map<ll,ll> mp;
int main(){
ios::sync_with_stdio(false);
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]*=2;
mp[a[i]]=i;
}
sort(a+1,a+1+n);
int l=1,r=n;
while(l!=r){
ll mid=(a[l]+a[r])/2;
ll num=upper_bound(a+l,a+r+1,mid)-a;
num-=l;
if(num*2>=r-l+1){
r--;
}
else{
l++;
}
}
cout<<mp[a[l]];
return 0;
}