2080 ProblemH整数パリティソート


問題H:整数パリティソート
時間制限:1 Secメモリ制限:32 MB
タイトルの説明
10個の整数を入力し、互いにスペースで区切ります.再ソート後の出力(スペースで区切る)は、1.まず奇数を出力し、大きいから小さいまで並べます.2.次に偶数を出力し、小さい順に並べます.
入力
任意に並べ替えられた10個の整数(0〜100)は、互いにスペースで区切られている.
しゅつりょく
複数のテストデータのグループがあり、各グループのデータについて、必要に応じてソートして出力し、スペースで区切られます.
サンプル入力
0 56 19 81 59 48 35 90 83 75 
17 86 71 51 30 1 9 36 14 16 

サンプル出力
83 81 75 59 35 19 0 48 56 90
71 51 17 9 1 14 16 30 36 86

ヒント
複数組のデータは、出力フォーマット1に注意する.テストデータには多くのグループがある可能性があります.while(cin>>a[0]>>a[1]>...>>a[9])のような方法で実現してください.2.入力データはランダムで、等しい可能性があります.
経験の総括
入力時にパリティを判断し、それぞれ2つの配列に格納し、出力をソートすればよい.
ACコード
#include 
#include 
#include 
using namespace std;
bool cmp(int a,int b)
{
	return a>b;
}
int main()
{
	int even[10],odd[10],n;
	while(~scanf("%d",&n))
	{
		int a=0,b=0;
		if(n%2==0)
			even[a++]=n;
		else
			odd[b++]=n;
		for(int i=0;i<9;i++)
		{
			scanf("%d",&n);
			if(n%2==0)
				even[a++]=n;
			else 
				odd[b++]=n;
		}
		sort(even,even+a);
		sort(odd,odd+b,cmp);
		for(int i=0;i