竞赛讨论区 > 请大佬们赐教,为什么这段代码A题通过率88.46%?
头像
我是皮皮虾啊
发布于 2021-02-04 13:05
+ 关注

请大佬们赐教,为什么这段代码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;
}

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐