7102 - 完美洗牌 2.0   

Description

現在給你一副特製的撲克牌,總共有 2n 張牌,每張牌有一個編號,編號的範圍從 1 2n,而且任兩張牌的編號是不相同的。

考慮一副新的撲克牌,其編號從上到下剛好是由小到大排列,以下說明如何對這副牌做完美洗牌。首先將撲克牌由上到下平分成兩堆,第一次洗牌之前,會分成 {1, 2,…, n} {n, n + 1 , …, 2n} 左右兩堆,一般洗牌是將撲克牌面朝下左右交錯的洗,之所以稱作為完美洗牌,代表他有以下的特性:

1.          同一堆的牌在洗完牌之後必定不會放在相鄰的位置,也就是洗牌每次都是左右各一張的交錯。

2.          每次洗牌的兩堆牌必定平分成等量的兩份。

3.          左手邊是撲克牌上面的 n 張,右手是剩下的 n 張。

4.          每次洗牌交錯時必定先從左邊開始。

根據這樣的規則,一副撲克牌在第一次洗牌之後的順序會變成:

{n + 1, 1, n + 2, 2, n + 3, 3, …, 2n - 1, n - 1, 2n, n}

請你寫一個程式去得到一副撲克牌經過完美洗牌 k (0 £ k £ 10,000,000) 次後,撲克牌的排列情況。

Hint: 作業的完美洗牌可以直接用k = k%52,但是這個數字和牌的張數一樣只是作業題湊巧而已。

Input

第一行有一個正整數 T (T £ 30),代表接下來有幾筆測試資料。

接下來 T 行,每行都有兩個數字 n ( 1 £ n £ 500) k (0 £ k £ 10,000,000),代表一副新的撲克牌經過 k 次的完美洗牌。

Output

每筆測試資料各佔兩行。

每筆測試資料,第一行輸出 "Case C:" 表示第 C 筆測資,下一行輸出經過 k 次完美洗牌後由上到下的排列順序,相鄰兩個數字之間以一個空白隔開,第一個數字前面以及最後一個數字後面不可以有空白。

Sample Input  Download

Sample Output  Download

Tags




Discuss