TopCoder

Thumb hsnu2016
Adrien Wu
$ \begin{align} AC \times 2^9 \\ \text{New TIOJ ?} \end{align} $

User's AC Ratio

100.0% (16/16)

Submission's AC Ratio

75.7% (28/37)

Description

賤狗高中麻將社準備參加全市的麻將大賽,代表選手有盩僰麌,大陸人,小鶍,木星人,企鵝。盩僰麌帶領的隊伍哪有可能輸呢?但是因為盩僰麌會裝弱,所以要靠其他人來凱瑞。盩僰麌表示為了增進大家的算牌能力,所以現在要玩一種進階版的麻將(牌的數字為$1 \sim N$、手上會持有$3M+1$張牌,不考慮牌不足的狀況),必須在很短的時間裡看出聽什麼牌。身為選手的企鵝覺得沒有原村和的擁抱,他就智商下降,所以希望你幫忙寫一個程式,判斷聽什麼牌。

首先先定義三個名詞:

  1. 將:兩張相同數字的牌
  2. 刻子:三張相同數字的牌
  3. 順子:數字相連的三張牌

所謂「和牌」,就是$3M+2$張牌,可以拆成一個將、$x$個刻子和$y$個順子,其中$x,y\geq 0;x+y=M$。
而聽某張牌的意思是,當前手上持有的$3M+1$張牌加上那張牌之後就會成為和牌。

Input Format

第一行包含兩個正整數$N,M$,表示牌的數字為$1 \sim N$,且手上持有$3M + 1$張牌。

對於所有測資,$9 \leq N \leq 400;4 \leq M \leq 1000$。

子任務(測資) 額外限制 分數
1 (0~10) $N=9,M=4$ 30
2 (0~31) 70

Output Format

如果此牌為聽牌,則輸出一行,列出當前手上的牌聽那些牌(必須由小排到大),若此非聽牌,則輸出一行NO

Sample Input

輸入範例1:
9 4
1 1 1 2 3 4 5 6 7 8 9 9 9

輸入範例2:
9 4
3 1 4 1 5 9 2 6 5 3 5 8 9

Sample Output

輸入範例1:
1 2 3 4 5 6 7 8 9

輸入範例2:
NO

Hints

Problem Source

Problem Set by Ting.H

Subtasks

For Testdata: 0 ~ 10, Score: 30
For Testdata: 0 ~ 31, Score: 70
No. Time Limit (ms) Memory Limit (KiB)
0 500 65536
1 500 65536
2 500 65536
3 500 65536
4 500 65536
5 500 65536
6 500 65536
7 500 65536
8 500 65536
9 500 65536
10 500 65536
11 500 65536
12 500 65536
13 500 65536
14 500 65536
15 500 65536
16 500 65536
17 500 65536
18 500 65536
19 500 65536
20 500 65536
21 500 65536
22 500 65536
23 500 65536
24 500 65536
25 500 65536
26 500 65536
27 500 65536
28 500 65536
29 500 65536
30 500 65536
31 500 65536