这题应该是分类分错了。就不写题解了。。。
#include<bits/stdc++.h>
using namespace std;
const int N = 5e5+10;
int s[N];
multiset<int> st;
int main()
{
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&s[i]);
    }
    int len=n/2;
    sort(s+1,s+n+1);
    for(int i=n;i>=n-len+1;i--)
    {
        st.insert(s[i]);
    }
    int cnt=0;
    for(int i=1;i<=len;i++)
    {
        auto it=st.lower_bound(2*s[i]);
        if(it!=st.end())
        {
            cnt++;
            //printf("cnt:%d\n",cnt);
            st.erase(it);
        }
    }
    printf("%d\n",n-cnt); 
 } 
京公网安备 11010502036488号