TopCoder

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

User's AC Ratio

94.4% (17/18)

Submission's AC Ratio

65.9% (29/44)

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) Output Limit (KiB)
0 500 65536 262144
1 500 65536 262144
2 500 65536 262144
3 500 65536 262144
4 500 65536 262144
5 500 65536 262144
6 500 65536 262144
7 500 65536 262144
8 500 65536 262144
9 500 65536 262144
10 500 65536 262144
11 500 65536 262144
12 500 65536 262144
13 500 65536 262144
14 500 65536 262144
15 500 65536 262144
16 500 65536 262144
17 500 65536 262144
18 500 65536 262144
19 500 65536 262144
20 500 65536 262144
21 500 65536 262144
22 500 65536 262144
23 500 65536 262144
24 500 65536 262144
25 500 65536 262144
26 500 65536 262144
27 500 65536 262144
28 500 65536 262144
29 500 65536 262144
30 500 65536 262144
31 500 65536 262144