1.使用內建sort()
2.負數mod出來也會是負數
3.比較時有四種狀況:不同餘、同餘皆奇、同餘皆偶、同餘一奇一偶
程式碼:
#include <iostream> #include <algorithm> using namespace std; int n,m; bool cmp(int a,int b) { if(a%m!=b%m) return a%m<b%m; if(abs(a%2)==1&&abs(b%2)==1) return a>b; if(abs(a%2)==0&&abs(b%2)==0) return a<b; return abs(a%2); } int main() { int l[10001]; while(cin>>n>>m) { cout<<n<<" "<<m<<endl; if(n==0&&m==0) break; for(int i=0;i<n;i++) cin>>l[i]; sort(l,l+n,cmp); for(int i=0;i<n;i++) cout<<l[i]<<endl; } return 0; }
沒有留言:
張貼留言