AT_abc388_e 题解
题目传送门
思路
可以使用双指针解决此题。
首先考虑答案最大的情况,那就是每一个麻薯都能与另一个配对,答案为
序列已经按照升序排序。为了使答案最大,我们用两个指针,
由于
AC CODE
#include<bits/stdc++.h>
using namespace std;
#define int long long
int read(){int x=0;char f=1,ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
const int N=5e5+10;
int a[N];
signed main(){
int n=read();
for(int i=1;i<=n;++i)
a[i]=read();
sort(a+1,a+n+1);
int hn=n/2,ans=0;
for(int i=1,j=hn+1;i<=hn&&j<=n;){
if(a[i]*2<=a[j])
++i,++j,++ans;
else ++j;
}
printf("%lld\n",ans);
return 0;
}