不是哥们 我E题都做完了C题还没过:(
#include <iostream>
#include <algorithm>
using namespace std;
const int N=200005;
int n;
struct node{
int val,id;
} arr[N];
bool cmp(const node& a,const node& b){
if(a.val==b.val) return a.id>b.id;
return a.val<b.val;
}
int main(){
int t;
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=n;++i){
cin>>arr[i].val;
arr[i].id=i;
}if(arr[1].val>arr[n].val){
cout<<"-1\n";
continue;
}if(arr[1].val*2>=arr[n].val){
cout<<"2\n";
continue;
}
sort(arr+1,arr+n+1,cmp);
int lst=1;
while(arr[lst].id!=1){
++lst;
}
//for(int i=1;i<=n;++i) cout<<arr[i].id<<' '<<arr[i].val<<'\n';
int ans=2;
arr[n+1].val=-1;
for(int i=lst;i<=n;++i){
if(arr[i+1].val>arr[lst].val*2){
if(arr[i].val*2<arr[i+1].val){
ans=-1;
break;
}else{
lst=i;
if(arr[i].id!=n) ++ans;
}
}if(arr[i].id==n){
break;
}
}cout<<ans<<'\n';
}
return 0;
}