CCF2017-3-1 分蛋糕

问题描述 
  小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。 
  请问当小明的蛋糕分完时,总共有多少个朋友分到了蛋糕。
 
输入格式 
  输入的第一行包含了两个整数n, k,意义如上所述。 
  第二行包含n个正整数,依次表示a1, a2, …, an。 

输出格式 
  输出一个整数,表示有多少个朋友分到了蛋糕。 
样例输入 
       6 9 
       2 6 5 6 3 5 

样例输出 
       3 
样例说明 
  第一个朋友分到了前3块蛋糕,第二个朋友分到了第4、5块蛋糕,第三个朋友分到了最后一块蛋糕。 
评测用例规模与约定 
  对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 10000,1 ≤ ai ≤ 1000。


#include
   
   
    
    
#include
    
    
     
     
#define MAX 1000
using namespace std;

int main() {
	int n, k,count=0;
	cin >> n >> k;
	int array[MAX];
	for (int i = 1; i <= n; i++)
	{
		cin >> array[i];
	}
	int sum = array[1];
	for (int j = 1; j <= n; j++)
	{
		if (sum >= k)
		{
			sum = array[j + 1];
			count++;
		}
		else
		{
			sum += array[j + 1];
		}
	}
	if (sum =! 0)    //定义有n个,a【n+1】=-858993460,所以这里不能用sum>0
	{
		count++;
	}
	cout << count << endl;
	system("pause");
	return 0;
}
    
    
   
   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值