菜鸡唯一会的一个题
首先读题 对队列 进行分割后要求和相等
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; }