/*----------------------------------------------------------------------
【程序设计】
------------------------------------------------------------------------
一名快递员有一个能承受最大重量为50公斤的送货箱。他需要依次接收若干个包裹,并将它们按顺序放入送货箱中进行配送。
每个包裹的重量各不相同。如果在接收某个包裹后,送货箱内的总重量超过了其最大承重能力,
则快递员需要先完成当前送货箱内所有包裹的配送,然后再开始接收新的包裹放入空的送货箱。
请计算快递员需要几次才能将所有包裹配送完毕。
(如果单个货物超过50公斤的(>50公斤),直接忽略不配送此货物) 

示例1:
请输入包裹的数量:4
请依次输入每个包裹的重量(单位:公斤):
第 1 个包裹的重量: 8
第 2 个包裹的重量: 51
第 3 个包裹的重量: 6
第 4 个包裹的重量: 5
需要1次才能将所有包裹配送完毕。

示例2:
请输入包裹的数量:5
请依次输入每个包裹的重量(单位:公斤):
第 1 个包裹的重量: 8
第 2 个包裹的重量: 7
第 3 个包裹的重量: 50
第 4 个包裹的重量: 1
第 5 个包裹的重量: 2
需要3次才能将所有包裹配送完毕。 
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在
      Program-End之间填入若干语句。
      不要删除标志否则不得分。
      不要修改或删除Program-End之外的内容否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>

// 函数用于计算所需的送货次数
int calculateDeliveryTimes(int weights[], int size) {
    int currentWeight = 0; 
    int deliveryTimes = 1; 
    
	/**********Program**********/
 	int i;
 	for(i=0;i<size;i++){
 		if(weights[i] <= 50){
 			if(currentWeight + weights[i] > 50){
 				currentWeight=0;
 				deliveryTimes++;
			 }
 			currentWeight += weights[i]; 
		}
	 }
	/**********  End  **********/  	
    return deliveryTimes;
}

int main() {
    int size;
    
    printf("请输入包裹的数量:");
    scanf("%d", &size);

    int weights[size];
    
    printf("请依次输入每个包裹的重量(单位:公斤):\n");
    for (int i = 0; i < size; ++i) {
        printf("第 %d 个包裹的重量: ", i + 1);
        scanf("%d", &weights[i]);
    }

    int times = calculateDeliveryTimes(weights, size);
    
    printf("需要%d次才能将所有包裹配送完毕。\n", times);

    return 0;
}