菜鸡唯一会的一个题
首先读题 对队列 进行分割后要求和相等
1e3的数据 我想了一下 直接跑on2
跑第一组占用几个 然后得出和 然后用这个和 算能不能正好把数列分割
如果可以就用max记录一下 注意只能分割不了的话 输出-1
#include<iostream>
#include<math.h>
#include<cstdio>
#include<string>
#include<algorithm>
using namespace std;
int n, jg = 0;
string s;
int pd(int fz)
{
int num = 0,jl=0;
for (int i = 1; i <=fz; i++)
{
num += s[i-1]-'0';
}
int numz = 0;
for (int i = 0; i <s.length(); i++)
{
numz += s[i] - '0';
if (num == numz)
{
jl++;
numz = 0;
}
else if(num < numz)
{
return 1;
}
}
if(jl<2)
{
return 0;
}
if (numz != 0 && num < numz)
{
return 1;
}
if (numz != 0 && num > numz)
{
return 2;
}
jg = max(jg,jl);
return 1;
}
int main() {
cin >> n >> s;
for (int i = 1; i < n; i++)
{
pd(i);
}
if (jg == 0)
cout << -1;
else
cout << jg;
}
京公网安备 11010502036488号