Codeforces Round 872 (Div. 1) |
---|
Закончено |
В шоу о VOCALOID принимают участие $$$n$$$ человек. Они будут сидеть в ряду с сиденьями, пронумерованными от $$$1$$$ до $$$m$$$ слева направо.
Все $$$n$$$ людей приходят и садятся по порядку. Каждый человек занимает место одним из трёх способов:
Теперь вы хотите узнать, каково максимальное количество тех, кто может занять место, если вы можете впустить людей на шоу в любом порядке?
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит единственное целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n, m \le 10^5$$$) — количество людей и количество мест.
Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$x_1, x_2, \ldots, x_n$$$ ($$$-2 \le x_i \le m$$$, $$$x_i \ne 0$$$), $$$i$$$-е из которых описывает способ, как $$$i$$$-й человек занимает место:
Гарантируется, что сумма $$$n$$$ и сумма $$$m$$$ по всем наборам входных данных не превосходят $$$10^5$$$.
Для каждого набора входных данных выведите единственное целое число — максимальное количество человек, которые могут занять место.
103 105 5 54 61 -2 -2 15 7-1 -1 4 -2 -26 75 -2 -2 -2 -2 -26 6-1 1 4 5 -1 46 8-1 -1 -1 3 -1 -26 75 -1 -2 -2 -2 -23 1-2 -2 12 55 -21 2-1
1 3 5 6 5 5 5 1 2 1
В первом наборе входных данных все люди хотят занять место $$$5$$$, поэтому только $$$1$$$ человек сможет занять место.
Во втором наборе входных данных людей можно впустить в порядке $$$1, 2, 3, 4$$$, тогда все люди, кроме последнего, смогут занять место.
В третьем наборе входных данных мы можем впускать людей на шоу в таком порядке:
Впустим третьего человека:
– | – | – | 3 | – | – | – |
Впустим четвёртого человека:
– | – | – | 3 | 4 | – | – |
Впустим пятого человека:
– | – | – | 3 | 4 | 5 | – |
Впустим первого человека:
– | – | 1 | 3 | 4 | 5 | – |
Впустим второго человека:
– | 2 | 1 | 3 | 4 | 5 | – |
Таким образом, все $$$5$$$ человек заняли места.
В пятом наборе входных данных мы можем впускать людей на шоу в таком порядке:
Впустим четвёртого человека:
– | – | – | – | 4 | – |
Впустим третьего человека:
– | – | – | 3 | 4 | – |
Впустим шестого человека, он покинет шоу, потому что занимает место третьим способом и должен сесть на место $$$4$$$, но оно уже занято:
– | – | – | 3 | 4 | – |
Впустим пятого человека:
– | – | 5 | 3 | 4 | – |
Впустим первого человека:
– | 1 | 5 | 3 | 4 | – |
Впустим второго человека:
2 | 1 | 5 | 3 | 4 | – |
Таким образом, $$$5$$$ человек заняли места.
В седьмом наборе входных данных мы можем впускать людей на шоу в таком порядке:
Впустим третьего человека:
3 | – | – | – | – | – | – |
Впустим четвёртого человека:
3 | 4 | – | – | – | – | – |
Впустим пятого человека:
3 | 4 | 5 | – | – | – | – |
Впустим шестого человека:
3 | 4 | 5 | 6 | – | – | – |
Впустим первого человека:
3 | 4 | 5 | 6 | 1 | – | – |
Впустим второго человека, он покинет шоу, потому что занимает место первым способом, но место $$$1$$$ занято:
3 | 4 | 5 | 6 | 1 | – | – |
Таким образом, $$$5$$$ человек заняли места.
Название |
---|