//http://www.codeforces.com/contest/253/problem/B
//二分
#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
int a[155660],n;
int lower_bound2(int v)
{
int x=1;
int y=n;
int m;
// cout<<"v is "<<v<<endl;
while(x<y){
m=(x+y)/2;
if(a[m]>=v) y=m;
else x=m+1;
}
// cout << "fasdf"<<" "<<x<<endl;
return x;
}
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int ans;
while (cin>>n){
for(int j =1;j<n+1;j++)
cin>>a[j];
sort(a+1,a+n+1);
a[0]=-9119999;
a[n+1]=99999999;
ans=9999999;
for (int j=n;j>0;j--)
if(a[j]&1)
ans=min(ans,n-j-1+lower_bound2(a[j]/2+1));
else
ans=min(ans, n-j-1+lower_bound2(a[j]/2));
cout<<ans<<endl<<endl;
}
return 0;
}
解法二
//http://www.codeforces.com/contest/253/problem/B
//二分
#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
int a[155660],n;
int upper_bound2(int v)
{
int x=0;
int y=n;
int m;
while(x<y){
m=(x+y)/2;
if(a[m]<=v) x=m+1;
else y=m;
}
// cout<<x<<endl;
return x;
}
int main()
{
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int ans;
while (cin>>n){
for(int j =0;j<n;j++)
cin>>a[j];
sort(a,a+n);
a[n]=-99999999;
ans=9999999;
for (int j=0;j<n;j++)
ans=min(ans,n+j-upper_bound2(2*a[j]));
cout<<ans<<endl;
}
return 0;
}