1
1
 12
55
75
1
98
63
64
9
39
82
18
47
9
 7
1
2
4
8
16
32
64
 4
1
1
1
2
 5
1
2
4
8
16
 100
678
771
96
282
135
749
168
668
17
658
979
446
998
331
606
756
37
515
538
205
647
547
904
842
647
286
774
414
267
791
595
465
8
327
855
174
339
946
184
250
807
422
679
980
64
530
312
351
676
911
803
991
669
50
293
841
545
598
737
894
231
754
588
83
873
767
833
482
905
903
970
571
715
59
777
697
537
861
339
212
149
889
905
70
970
307
830
465
968
291
430
317
942
944
330
235
814
880
415
76
 12
3
99
24
46
75
63
57
55
10
62
34
52
 3
1
2
4
 100
154
60
97
638
139
150
570
579
601
647
804
237
245
549
288
347
778
282
916
441
974
145
957
886
655
702
930
618
132
520
972
48
94
54
682
433
896
134
845
636
242
842
125
141
240
130
409
666
948
938
604
110
474
484
364
40
807
271
438
288
201
814
754
589
341
576
146
952
819
923
222
535
336
83
314
911
303
911
384
601
249
330
735
271
142
204
405
783
775
449
590
139
109
276
45
205
454
836
82
841

1
 6
 4
 3
 3
 58
 7
 2
 50


/** || By The Name of Allah, Who Created Me. || **/

/**
	* Author   : Farid ul Islam Chy.
	* Batch    : 38th.
	* Semester : 7C(E).
	* Leading University, Sylhet.
	* Online Judge:
**/

#include <bits/stdc++.h>
using namespace std;

#define gc              getchar unlocked
#define gc              getchar
#define pc              putchar_unlocked
#define pc              putchar

#define pb    		push_back
#define ForA(n)  	for (ll i=0; i<n; i++)
#define ForA2(n)  	for (ll j=0; j<n; j++)
#define ForA3(n)  	for (ll k=0; k<n; k++)
#define ForN(n)  	for (ll i=1; i<=n; i++)
#define ForN2(n)  	for (ll j=1; j<=n; j++)
#define ForN3(n)  	for (ll k=1; k<=n; k++)
#define SortA(n,x) 	sort(n,n+x);
#define SortS(s)  	sort(s.begin(), s.end());
#define SortRS(s)  	sort(s.rbegin(), s.rend());
#define Search(s)       s.begin(), s.end()
#define SortSG(n)	sort(n.begin(), n.end(), greater<int>());
#define Cin(a) 	        cin>>a;
#define GCin(a)	    	getline(cin,a);
#define Sz(a)		a.size()
#define Cin2(a,b)	cin>>a>>b;
#define Cin3(a,b,c)	cin>>a>>b>>c;
#define Cin4(a,b,c,d)   cin>>a>>b>>c>>d;
#define scan2(a,b)      scan(a);scan(b);
#define scan3(a,b,c)    scan(a);scan(b),scan(c);
#define scan4(a,b,c,d)  scan(a);scan(b),scan(c),scan(d)
#define Unique(n)       sort(Search(n)),n.erase(unique(Search(n)),n.end())
#define PI 	        3.1415926535897932384626433832795l
#define Ignore	        cin.ignore();
#define Cout(n)		cout<<n<<endl;
#define mem(n,i)        memset(n,i,sizeof n);
#define deci(n)         cout<<fixed<<setprecision(n);
#define square(n)       n*n
#define cube(n)         n*n*n
#define F               first
#define S               second
#define bug()		cerr<<"*****<>*****\n";

typedef unsigned long long ull;
typedef long double ldb;
typedef long long ll;
typedef stringstream SS;
typedef vector<string> VS;
typedef vector<ll> VI;
typedef vector<char> VC;
typedef map<string, string> MSS;
typedef map <ll,string> MIS;
typedef map <char,ll> MCI;
typedef map <string,ll> MSI;
typedef map <ll,ll> MII;
typedef pair<int, int> pii;
map<ll,ll>fib;

const int dx4[] = {-1, 0, 1, 0};
const int dy4[] = { 0, 1, 0,-1};

const int dx8[] = {-1, 0, 1, 0, -1,-1, 1, 1};
const int dy8[] = { 0, 1, 0,-1, -1, 1,-1, 1};

const int dxhorse[] = {-2, -2, -1, -1, 1, 1, 2, 2};
const int dyhorse[] = {1,  -1, 2 , -2, 2,-2, 1,-1};

template <typename T> inline T ItoS(T n){SS a; a<<n;return a.str();}
template <typename T> inline T TrailingZeros(T  n){ll cnt = 0;for(ll i=5; n/i>=1; i*=5) cnt += n/i;return cnt;}
template <typename T> inline T StoI(T s){ll sum=0;for(ll i=0; i<Sz(s); i++){s[i]-='0';sum=sum*10+s[i];}return sum;}
template <typename T> inline T binary_decimal(T n){ll decimal=0, i=0, rem;while (n!=0){rem = n%10;n/=10;decimal += rem*pow(2,i);++i;}return decimal;}
template <typename T> inline T LCM(T a,T b){return (a*b)/GCD(a,b);}
template <typename T> inline T maxi(T x, T y) { if(x>y) return x; else return y;}
template <typename T> inline T maxi(T x, T y,T z) { return maxi(maxi(x,y),z);}
template <typename T> inline T mini(T x, T y) { if(x<y) return x; else return y;}
template <typename T> inline T mini(T x, T y,T z) { return mini(mini(x,y),z);}
template <typename T> inline T GCD(T a,T b)   {ll t;while(a){t = a;a = b%a;b = t;}return b;}
template <typename T> inline T Pow(T base,T exp){ll result = 1;while (exp){if(exp&1)result*=base;exp>>=1;base*=base;}return result;}
template <typename T> inline T Mulmod(T a, T b, T c){ull x = 0,y = a%c;while(b>0){if(b&1) x = (x+y)%c;y = (y<<1)%c;b >>= 1;}return x;}
template <typename T> inline T Pow(T base,T exp,T mod){ull x = 1, y = base;while(exp>0){if(exp&1) x = Mulmod(x,y,mod);y = Mulmod(y,y,mod);exp >>= 1;}return x;}
template <typename T> inline T modulo(T a,T b,T c){ull x = 1 , y = a%c ;while( b>0 ){if(b%2) x = Mulmod(x,y,c) ;y=Mulmod(y,y,c);b/=2;}return x%c ;}
template <typename T> inline T BigMod(T a, T b, T m){if(!b)return 1;ll x=BigMod(a, b/2, m);x=(x*x)%m;if(b%2)x=(x*a)%m;return x;}
template <typename T> inline T EGCD(T a,T b,T &x,T &y){if(a == 0) {x = 0;y = 1;return b;}T x1, y1;T d = EGCD(b % a, a, x1, y1);x = y1 - (b / a) * x1;y = x1;return d;}
template <typename T> inline T NumOfDivisor(T n){ ll cnt=0; int square_root = (int) sqrt(n) + 1; for (int i = 1; i < square_root; i++) { if (n%i == 0&&i*i!=n) cnt+=2; if (n%i == 0&&i*i==n) cnt++;} return cnt;}
template <typename T> string to_string(T const& value) { stringstream sstr; sstr << value; return sstr.str();}
template <class T1,class T2,class T3,class T4> int lcs( T1 X,T2 Y,T3 m,T4 n ){int L[m+1][n+1];int i, j;for (i=0; i<=m; i++){for (j=0; j<=n; j++){if (i == 0 || j == 0)L[i][j] = 0;else if (X[i-1] == Y[j-1])L[i][j] = L[i-1][j-1] + 1;else L[i][j] = max(L[i-1][j], L[i][j-1]);}}return L[m][n];}
template<class T>inline ll Fibonacci(T n){if(n == 0) return 0;if(n == 1 or n == 2) return fib[n] = 1;if(fib[n]) return fib[n];ll k = (n+1) >> 1;if(n&1){fib[n] = Fibonacci(k)*Fibonacci(k) + Fibonacci(k-1)*Fibonacci(k-1);}else fib[n] = ((Fibonacci(k-1)) << 1) + Fibonacci(k)*Fibonacci(k);return fib[n];}
template<class T, class T2>inline ll Fibonacci(T n, T2 M){if(n == 0) return 0;if(n == 1 or n == 2) return fib[n] = 1;if(fib[n]) return fib[n];ll k = (n+1) >> 1;if(n&1){fib[n] = (Fibonacci(k,M) * Fibonacci(k,M) + Fibonacci(k-1,M) * Fibonacci(k-1,M)) % M;}else fib[n] = (((Fibonacci(k-1,M)) << 1) + Fibonacci(k,M)*Fibonacci(k,M)) % M;return fib[n];}


/****************** Prime Generator **********************/

//const int N=1e7+10; int prime[20000010]; bool isprime[N]; int nprime;
//template <typename T> void Sieve(T a) {nprime = 0;memset(isprime,true,sizeof(isprime));isprime[1]=false;for(int i=2;i<N;i++){if(isprime[i]){prime[nprime++]=i;for(int j=2;i*j<N;j++)isprime[i*j]=false;}}}
//template <typename T> bool miller_rabin(T p, T itt) {if(p<2) return 0 ;if(p==2) return 1;if(p%2==0) return 0 ;ull s = p-1 ;while(s%2==0) s/=2;for(ll i=1;i<=itt;i++) {ull a = rand() % (p-1)+1 , temp = s ;ull mod = modulo(a,temp,(ull)p);while(mod!=1 and mod!=p-1 and temp!=p-1){mod = Mulmod(mod,mod,(ull)p);temp*=2;}if(temp%2==0 and mod!=p-1) return false ;}return true;}
//template <typename T> inline T PrimeFactors(T n){ll cnt=0,sum=1;for(int i=0; prime[i]*prime[i]<=n and i<nprime;i++){cnt=0;while(n%prime[i]==0){cnt++;n/=prime[i];}sum*=(cnt+1);}if(n>1)sum*=2;return sum;}

/********************** Faster I/O *********************/

template <typename T> inline T scan(T &n) { n=0; bool negative=0; char c=gc(); while(c<'0'||c>'9') {if(c=='-') negative=1; c=gc();} while(c>='0'&&c<='9'){n=n*10+c-48;c=gc();} if(negative) n=~(n-1);}
template <typename T> void print(T n){if(n<0){pc('-');n=-n;}if(!n){pc('0');pc('\n');return;}char buff[12];int len=0;while(n) buff[len++]=n%10+48,n/=10;for(int i=len-1;i>=0;i--) pc(buff[i]);pc('\n');}
template <typename T> void print(T a, T b){print(a);print(b);}
template <typename T> void print(T a, T b, T c){print(a);print(b);print(c);}
template <typename T> void Print(T n){if(n<0){pc('-');n=-n;}if(!n){pc('0');return;}char buff[12];int len=0;while(n) buff[len++]=n%10+48,n/=10;for(int i=len-1;i>=0;i--) pc(buff[i]);}
template <class T1,class T2> void Print(T1 e1,T2 e2){cout<<e1<<" "<<e2<<endl;}
template <class T1,class T2,class T3> void Print(T1 e1,T2 e2,T3 e3){cout<<e1<<" "<<e2<<" "<<e3<<"\n";}
template <class T1,class T2,class T3,class T4> void Print(T1 e1,T2 e2,T3 e3,T4 e4){cout<<e1<<" "<<e2<<" "<<e3<<" "<<e4<<"\n";}

/**>>>>>>>>>>>>>>>>>>>>>>>> END <<<<<<<<<<<<<<<<<<<<<<**/

int mp[500005];

int main(){

    #ifdef FariD
        freopen("in.txt","r",stdin);
        //freopen("out.txt","w",stdout);
    #endif // FariD

    int n, x;

    scan(n);
    vector<int>v;

    for(int i=0; i<n; i++) {
        scan(x);
        v.pb(x);
        mp[x]++;
    }
    SortS(v);

    ll cnt=n;

    for(int i=n-1; i>=0; i--){
        int val = v[i] >> 1;
        int lo = upper_bound(Search(v),val)-v.begin();
        lo--;
        //Print(val,v[i],lo,v[lo]);
        if(v[lo]<=val and mp[v[lo]]){
            cnt--;
            mp[v[lo]]--;
        }

    }
    Cout(cnt)


    return 0;
}


