7001 - 完美洗牌   

Description

撲克牌一副有52張,一副新的撲克牌由上到下的順序是:黑桃A, 黑桃2,…, 黑桃Q, 黑桃K, 紅心A, …, 紅心 K, 梅花A, …,梅花K, 方塊A,…,方塊K,為了方便起見,我們以{1, 2, 3, …, 51, 52} 作為一副新的撲克牌由上到下的順序。

如果大家看過Liar game (詐欺遊戲),想必知道有一種叫做完美洗牌的洗牌方式,一開始洗牌的時候,會將撲克牌由上到下平分成兩堆,假設是第一次洗牌,則開始會分成{1, 2,…, 26}和{27, 28, …, 52}左右兩堆,一般洗牌是將撲克牌面朝下左右交錯的洗,之所以稱作為完美洗牌,代表他有以下的特性:

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

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

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

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

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

{27, 1, 28, 2, 29, 3, …, 51, 25, 52, 26}

我們沒有像Liar game一樣的心算能力,所以請你寫一個程式去計算一副新的撲克牌經過完美洗牌k(0 <= k <= 10,000,000) 次後,撲克牌的排列

Input

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

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

Output

每筆測試資料各佔五行。

對於每筆測試資料,第一行輸出"Case i:"表第幾筆測資,接下來四行輸出經過k次完美洗牌後由上到下的排列順序,每13個數字一行。

在每一行中,相鄰兩個數字之間以一個空白隔開,第一個數字前面以及最後一個數字後面不可以有空白。

Sample Input  Download

Sample Output  Download

Tags




Discuss