# Sort! Sort!! And Sort!!!
題目連結 [UVa 11321](https://onlinejudge.org/external/113/11321.pdf)
## 中文簡述
按照以下原則排序
1. 按照除以M的餘數排,越少的在越前面
2. 如果餘數相同,按照奇偶數排
3. 偶數越排越大,奇數越排越小
## solution:
```
#include <bits/stdc++.h>
using namespace std;
int n, m;
bool cmp(int i, int j)
{
if (i % m != j % m)
return i % m < j % m;
if ((i & 1) && (j & 1))
return i > j;
else if (!(i & 1) && !(j & 1))
return i < j;
else
return i & 1;
}
int main()
{
while (cin >> n >> m, n)
{
cout << n << " " << m << endl;
vector<int> nums(n);
for (auto& i : nums)
cin >> i;
sort(nums.begin(), nums.end(), cmp);
for (auto& i : nums)
cout << i << endl;
}
cout << 0 << " " << 0 << endl;
}
```
###### tags: `UVA`
回目錄 [學習筆記](/gIBZqAbWTCis7uOPp149gA)