试题编号: 201703-1
试题名称: 分蛋糕
时间限制: 1.0s
内存限制: 256.0MB
小明每次分给他朋友的蛋糕要么是大于等于k,要么是小明手上没有更多的蛋糕。
依次读入蛋糕重量,因为小明总是选择编号小的蛋糕分给朋友,所以用一个left整数来保存小明手上剩余的蛋糕总重量。当手中的蛋糕重量大于等于k,就分给一个朋友,手上就没有蛋糕了,left置0。注意读入所有蛋糕后,如果left值不为零,仍然可以把这一份蛋糕分给一个朋友,因为题目中说“直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k”。
int main() {
int n, k, t, left = 0, ans = 0; //ans表示分到蛋糕的朋友数,left表示小明手上剩余的蛋糕重量
cin >> n >> k;
while (n--) {
cin >> t;
left += t;
if (left >= k) {
left = 0;//重量超过k就分给一个同学
ans++;
}
}
if (left)//如果手上蛋糕还有剩余仍可以再分给一个同学
ans++;
cout << ans << endl;
return 0;
}