【CCF CSP-20170301】分蛋糕
题意概述
小明今天生日,他有 n 块蛋糕要分给朋友们吃,这 n 块蛋糕(编号为 1 到 n)的重量分别为 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an。小明想分给每个朋友至少重量为 k 的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到 k 时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于 k。
请问当小明的蛋糕分完时,总共有多少个朋友分到了蛋糕。
输入输出格式
输入的第一行包含了两个整数 n、k,意义如上所述。第二行包含 n 个正整数,依次表示 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an。
输出一个整数,表示有多少个朋友分到了蛋糕。
C++ 代码
#include <bits/stdc++.h>
using namespace std;
using gg = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
gg ni, ki, ai;
gg s = 0, ans = 0;
cin >> ni >> ki;
for (gg i = 0; i < ni; ++i) {
cin >> ai;
s += ai;
if (i == ni - 1 or s >= ki) {
++ans;
s = 0;
}
}
cout << ans;
return 0;
}