竞赛讨论区 > 帮忙看看错在那里

帮忙看看错在那里

A题 
有没有大神帮忙看看错在那里   通过率92%。
#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    string ss;
    cin >> ss;
    int len = 0;
    for (int i = 0; i < n; i++)
    {
        len = len + (ss[i] - '0');
    }
    int copy = len;
    if (len == 0)
    {
        cout << n << endl;
        return 0;
    }
    else
    {
        for (int k = 1; k * k <= len; k++)
        {
            if (len % k == 0)
            {
                for (int z = 1; z <= 2; z++)
                {
                    int kp=0;
                    if(z==1)
                    {
                        kp=k;
                    } 
                    else if(z==2)
                    {
                       if(k==1break;
                       if(len/k!=k)
                       { 
                         kp=len/k;
                       }
                       else break;
                    }
                    int tt = 0;
                    int flag = 1;
                    for (int i = 0; i < n; i++)
                    {
                        tt = tt + (ss[i] - '0');
                        if (tt == kp)
                        {
                            tt = 0;
                        }
                        else if (tt > kp)
                        {
                            flag = 0;
                            break;
                        }
                    }
                    if (flag == 1)
                    {
                        cout << copy / kp << endl;
                        return 0;
                    }
                }
            }
        }
    }
    cout << -1 << endl;
    return 0;
}

全部评论

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

等你来战

查看全部

热门推荐