2011年7月30日 星期六

11321 - Sort! Sort!! and Sort!!!


本題請你對一個陣列作排序,給定陣列大小為N,及正整數M,請你依陣列元素取M的模數(value Mod(M),即對M取餘數)大小,由小到大依序排序所有陣列元素,若取模數後其值大小相同,在此情況下分三種情況進行討論:
  • 若兩個元素值分別為一個奇數與一個偶數,則將奇數排在偶數前面。
  • 若兩個元素皆為奇數,則較大的奇數將排在較小的奇數前面。
  • 若兩個元素皆為偶數,則較小的偶數將排在較大的偶數前面。
負數取模數的方式將以C語言取餘數的方式為準,其餘數不會大於0,例如 -100 MOD 3 = -1, -100 MOD 4 = 0。

Input
輸入有20組測試資料,每組資料一開始有兩個整數N(0 < N <= 10000)與M(0 < M <= 10000),接下來會有N列整數,每個整數皆能以32位元的有號整數來表示。當N = 0 且 M = 0 時表示測試資料結束。

Output

請毎組測試資料輸出N+1列,第一列請輸出N與M的值,接下來的N列請分別輸出排序後的陣列元素。最後也請把兩個0印出在最後一列。

Sample Input                      Output for Sample Input

15 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0 0
 
15 3
15
9
3
6
12
13
7
1
4
10
11
5
2
8
14
0


原文出處

沒有留言:

張貼留言