高级农民
- 积分
- 1833
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2018-10-2
- 最后登录
- 1970-1-1
|
不知道理解的对不对,试着写了一下你的题目:
- #include <iostream>
- #include <vector>
- #include <functional>
- #include <numeric>
- using namespace std;
- bool sliceCake(vector<int>& cake, int n)
- {
- int sum = accumulate(cake.begin(), cake.end(), 0);
- if(sum % (n+1)) return false;
- int target = sum/(n+1);
- int count = 0;
- for(int i=0; i<cake.size(); ++i)
- {
- count+=cake[i];
- if(count==target) count=0;
- if(count>target) return false;
- }
- return count == 0;
- }
- int main()
- {
- vector<int> cake{1,2,2,1,1,1,1};
- cout << (sliceCake(cake, 2) ? "true" : "false");
- return 0;
- }
复制代码 |
|