P6454 麻将 加强版

题目背景

此题我本来是想出公开赛的,没想到撞题了。 题面是我自己撰写的,与原题不同。 此题题意与 [P4050](https://www.luogu.com.cn/problem/P4050) 大致相同,**有少许不同**,**且数据范围有所更改**。 ------------ 小 A 喜欢打麻将。

题目描述

小 A 找到了一副奇怪的麻将牌:只有一种 $1,2,\cdots,n$ 的数牌,且每种牌都有**无穷多张**。 定义「雀头」为两张一样的牌(如 $2,2$,$7,7$),「刻子」为三张一样的牌(如 $1,1,1$,$4,4,4$),「顺子」为三张序数相邻的牌(如 $1,2,3$,$9,10,11$,注意 $1$ 与 $n$ 不相邻)。「顺子」与「刻子」统称「面子」。 假如你能把你的手牌分为若干组「雀头」(**可以相同**),或者分为若干组「面子」(**可以相同**)以及一组「雀头」,那么你就可以「和牌」。 假如某副手牌加上某张牌后可以「和牌」,则称这副手牌「听」这张牌。 现在小 A 随意摸了 $k$ 张牌,他想知道他「听」哪些牌。

输入格式

第一行两个正整数 $n,k$,分别表示牌的范围和小 A 手上牌的张数。 接下来一行 $k$ 个整数 $a_1,a_2,\cdots,a_k$ 给出小 A 的手牌,每个数表示小 A 手上的一张牌。**不保证按升序给出。**

输出格式

第一行一个正整数 $t$,表示小 A「听」的牌的种数。 接下来一行 $t$ 个正整数,表示小 A「听」哪些牌。**请按照升序输出。**

说明/提示

#### 样例解释 样例一解释:这种牌型叫做[纯正九莲宝灯](https://zh.moegirl.org/%E6%97%A5%E6%9C%AC%E9%BA%BB%E5%B0%86:%E4%B9%9D%E8%8E%B2%E5%AE%9D%E7%81%AF)。~~折寿警告~~ 具体划分方式: ```plain 1 111|123|456|789|99 2 111|345|678|999|22 3 123|345|678|999|11 4 111|234|456|789|99 5 111|234|678|999|55 6 123|456|678|999|11 7 111|234|567|789|99 8 111|234|567|999|88 9 123|456|789|999|11 ``` [](https://i.loli.net/2020/04/18/TPvukw8pbHNnFC4.png) 样例二解释:很显然这套牌差一张 $7$ 即可分为 $1,1;1,1;3,3;3,3;5,5;5,5;7,7$ 共计 $7$ 组「雀头」和牌。 #### 数据范围 **本题采用捆绑测试。** - $\text{Subtask\;1(5\;pts)}$:$k=1$。 - $\text{Subtask\;2(5\;pts)}$:$n=1$。 - $\text{Subtask\;3(10\;pts)}$:$n=9$。 - $\text{Subtask\;4(15\;pts)}$:$k\le 100$。 - $\text{Subtask\;5(15\;pts)}$:$n\le 100$。 - $\text{Subtask\;6(50\;pts)}$:无特殊限制。 对于所有数据,$1\le n\le 5\times10^3$,$1\le k\le 10^5$,$1\le a_i\le n$,$k\equiv 1\pmod 6$。