[CQOI2010]扑克牌
题号:NC19916
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}本题转译自 [CQOI2010] 扑克牌。
\hspace{15pt}你有 n 种牌,第 i 种牌的数目为 c_i 。另外有 m 张特殊的 \texttt{Joker} 牌。你有如下方法来组成一套牌:
\hspace{23pt}\bullet\,不使用 \texttt{Joker} 牌,n 种牌各一张;
\hspace{23pt}\bullet\,使用一张 \texttt{Joker} 牌,其他 n-1 种牌各一张;
\hspace{15pt}比如,当 n=3 时,一共有四种不同的组合方式:\{1,2,3\}\{\texttt{Joker},2,3\}\{\texttt{Joker},1,3\}\{\texttt{Joker},1,2\}
\hspace{15pt}现在,给出 n, mc_i,你的任务是组成尽量多套牌。每张牌最多只能用在一副套牌里(可以有牌不使用)。

输入描述:

\hspace{15pt}第一行输入两个整数 n, m \left(2 \leq n \leq 50;\ 0 \leq m \leq 5 \times 10^8 \right) 代表牌的种数和 \texttt{Joker} 的个数。
\hspace{15pt}第二行输入 n 个整数 c_1, c_2, \cdots, c_n \left(0 \leq c_i \leq 5 \times 10^8 \right) 代表每种牌的张数。

输出描述:

\hspace{15pt}在一行上输出一个整数,代表最多可以组出几套牌。
示例1

输入

复制
3 4
1 2 3

输出

复制
3

说明

\hspace{15pt}可以组成 \{1, \texttt{Joker}, 3\}\{\texttt{Joker}, 2, 3\}\{\texttt{Joker}, 2, 3\} 这样三套牌,\texttt{Joker} 还剩一个,其余牌全部用完。
示例2

输入

复制
3 4
1 3 3

输出

复制
3

说明

\hspace{15pt}可以组成 \{1, \texttt{Joker}, 3\}\{\texttt{Joker}, 2, 3\}\{\texttt{Joker}, 2, 3\} 这样三套牌;也可以组成 \{1, 2, 3\}, \{\texttt{Joker}, 2, 3\}, \{\texttt{Joker}, 2, 3\} 这样三套牌。

备注: