Codeforces Round 957 (Div. 3) |
---|
Закончено |
K1o0n, пустившись в празднование выздоровления, испек огромную $$$n$$$-метровую картофельную запеканку.
Оказывается, Noobish_Monk просто ненавидит картофель, поэтому он решил испортить блюдо K1o0n и порезал его на $$$k$$$ кусочков целой длины $$$a_1, a_2, \dots, a_k$$$ метров.
K1o0n был раздосадован, увидев такой террор. Благо все еще можно поправить, за одну операцию он может сделать одно из следующих действий:
Помогите K1o0n определить минимальное количество операций, которое ему предстоит сделать, чтобы склеить запеканку в один целый кусок длины $$$n$$$.
Например, если $$$n=5$$$, $$$k=2$$$, $$$a = [3, 2]$$$, то оптимально действовать следующим образом:
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
В первой строке каждого набора дано два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 10^9$$$, $$$2 \le k \le 10^5$$$) — длина картофельной запеканки в метрах и количество кусочков после пакости Noobish_Monk.
Во второй строке каждого набора содержится $$$k$$$ целых чисел $$$a_1, a_2, \ldots, a_k$$$ ($$$1 \le a_i \le n - 1$$$, $$$\sum a_i = n$$$) — длины кусочков, на которые Noobish_Monk разрезал изначальную запеканку.
Гарантируется, что сумма $$$k$$$ по всем $$$t$$$ наборам данных не превосходит $$$2 \cdot 10^5$$$.
Для каждого набора входных данных, выведите минимальное количество операций, за которое K1o0n сможет восстановить свою запеканку после террора Noobish_Monk.
45 33 1 15 23 211 42 3 1 516 61 6 1 1 1 6
2 3 9 15
Название |
---|