这里,我们讨论一个简单的排序方法:
给出 N 个数字和一个正整数 M。
你将使用如下方法对这 N 个数字进行排序:
- 如果一个奇数和一个偶数对 M 取余的结果一样,奇数排在偶数之前;
- 如果两个奇数对 M 取余的结果一样,较小的奇数排在较大的奇数之前。
- 如果两个偶数对 M 取余的结果一样,较大的偶数排在较小的偶数之前。
如果数字是负数,取余的方法遵循 C 语言的规则:一个负数不可以有一个大于零的模。
比如:-100 MOD 3 = -1; -100 MOD 4 = 0, 等等。
【输入格式】
输入数据包含 20 组输入:
对于每组输入,第一行,两个整数 N, M。
第 2 至 N+1 行,每行一个整数。输入数据保证在 32 为带符号整数范围内。
输入数据以一行 "00" 结束。
【输出格式】
对于每组输入,输出 N + 1 行:
第一行,输出 N 和 M。
接下来的 N 行,每行一个数, 按照上述规则排序的输入数据。
也要把最后的 "00" 输出。
~~(他还要求我发点谦虚的东西)~~蒟蒻翻译,还请大佬指正