小吃领取(snack)
题目描述
Y 同学正在参加一次美食节。
现场共有 n 种小吃,其中第 i 种小吃有 ai 份。
现在需要安排若干位市民来领取这些小吃,并满足以下规则:
- 每位市民领取的小吃总数至多为 x 份;
- 对于任意一种小吃,每位市民至多领取 2 份。
设一共安排了若干位市民,且所有小吃都被领取完。你需要求出满足条件时,所需市民人数的最小值。
更形式化地,你需要将每种小吃分配给若干位市民。若第 j 位市民领取了第 i 种小吃 ci,j 份,则需要满足:
- 对任意 i,j,有 0≤ci,j≤2;
- 对任意 i,有 ∑jci,j=ai;
- 对任意 j,有 ∑ici,j≤x。
在所有满足上述条件的分配方案中,求最小的市民人数。
输入格式
第一行包含两个整数 n 和 x,分别表示小吃种类数以及每位市民最多可领取的小吃总份数。
第二行包含 n 个整数 a1,a2,…,an,表示每种小吃的份数。
输出格式
输出一行一个整数,表示最少需要多少位市民才能将所有小吃全部领取完。
样例
样例输入 #1
4 2
1 3 2 5
样例输出 #1
6
数据范围与约定
对于 100% 的数据,保证 1≤n≤105,2≤x≤100,1≤ai≤109。
| 测试点编号 |
分值 |
n≤ |
x≤ |
ai≤ |
特殊性质 |
| 1∼2 |
10 |
50 |
100 |
50 |
无 |
| 3∼4 |
500 |
2 |
103 |
特殊性质 A |
| 5∼6 |
5000 |
100 |
特殊性质 B |
| 7∼10 |
20 |
105 |
105 |
无 |
| 11∼12 |
10 |
2 |
109 |
特殊性质 A |
| 13∼14 |
100 |
特殊性质 B |
| 15∼20 |
30 |
无 |
- 特殊性质 A:保证 x=2。
- 特殊性质 B:保证 n=1。