EduBrick

K. Сколько весов достижимо

3000 мс · 256 МБ · всё или ничего

Как классная задача K, но вопрос другой: сколько различных суммарных весов от 11 до WW можно набрать?

Битсет считает это тем же способом: после всех сдвигов достаточно посчитать единичные биты в первых W+1W + 1 позициях, не считая нулевую.

У std::bitset для этого есть готовый метод count(). Если считать вручную, пригодится __builtin_popcountll по словам — но не забудьте обнулить биты за границей WW, иначе они попадут в ответ.

Формат ввода

Первая строка содержит числа NN (1≤N≤20001 \le N \le 2000) и WW (1≤W≤2⋅1061 \le W \le 2 \cdot 10^6).

Вторая строка — NN чисел wiw_i (1≤wi≤20001 \le w_i \le 2000).

Формат вывода

Одно число — количество достижимых весов от 1 до WW.

Примеры

ввод
5 10
1 2 3 4 5
вывод
10
ввод
2 10
4 5
вывод
3
Войдите, чтобы отправлять решения.