请大佬们赐教,为什么这段代码A题通过率88.46%?

A题这段二分代码为什么通过率是88.46%
求大佬赐教
#include<bits/stdc++.h>
using namespace std;
int n;
int a[1005];
int sum;
int judge(int mid)
{
    //cout<<mid<<endl;
    if(sum%mid)
        return 0;
    int temp=sum/mid;
    int temp2=0;
    for(int i=1;i<=n;i++)
    {
        temp2+=a[i];
        if(temp2>temp)
            return 0;
        else if(temp2==temp)
            temp2=0;
    }
    if(temp2==0)
        return 1;
    else
        return 0;
}
int main()
{
    cin>>n;
    sum=0;
    for(int i=1;i<=n;i++)
        {scanf("%1d",&a[i]);
         sum+=a[i];
        }
    //cout<<sum<<endl;
    int ans=1;
    int l=1,r=n;
    while(l<=r)
    {
        int mid=(l+r)>>1;
        if(judge(mid))
            {l=mid+1;
             ans=mid;
            }
        else
            r=mid-1;
    }
    if(ans==1)
        cout<<-1<<endl;
    else
        cout<<ans<<endl;
    return 0;
}

全部评论

相关推荐

湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务