大致做法是把麻薯(原文的 mochi )分成较小的一半和较大的一半,然后再从两组中各取一个配对
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[500005];
int main(){
int n,ans=0;scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1,j=n/2+1;j<=n&&i<=n/2;i++,j++){
while(a[i]*2>a[j]&&j<=n) j++;
if(j>n) break;
ans++;
}
printf("%d",ans);
return 0;
}
如果该做法是错误的,求 Hack
(如果真是这样,那数据也太水了吧)