新手。样例过了,全WA,求助
查看原帖
新手。样例过了,全WA,求助
699395
Crystalzyh楼主2022/10/28 21:34
#include<bits/stdc++.h>
using namespace std;
const int N=25050;
int n,a[N],t;
int dp[N],ans,cs;
bool cmp(int x,int y)
{
	return x>y;
}
int main()
{
      scanf("%d",&t);
      for(int i=1;i<=t;i++)
      {
        scanf("%d",&n);
        int mid=n/2;
		ans=n;
        for(int j=1;j<=n;j++)
            scanf("%d",&a[j]);
            sort(a,a+n+1,cmp);
		for(int j=1;j<=mid-1;j++)
			   cs+=a[j]%a[j+1];
		    for(int i=mid;i<=n;i++)
		    {
		    	if(cs>=a[i])
		    	ans--;
		}	
		  cout<<ans<<endl;}
      return 0;}

大概想法就是降序排序并二分区间之后看左区间的余数和是否大于右边的

2022/10/28 21:34
加载中...