2080 ProblemH整数パリティソート
問題H:整数パリティソート
時間制限:1 Secメモリ制限:32 MB
タイトルの説明
10個の整数を入力し、互いにスペースで区切ります.再ソート後の出力(スペースで区切る)は、1.まず奇数を出力し、大きいから小さいまで並べます.2.次に偶数を出力し、小さい順に並べます.
入力
任意に並べ替えられた10個の整数(0〜100)は、互いにスペースで区切られている.
しゅつりょく
複数のテストデータのグループがあり、各グループのデータについて、必要に応じてソートして出力し、スペースで区切られます.
サンプル入力
サンプル出力
ヒント
複数組のデータは、出力フォーマット1に注意する.テストデータには多くのグループがある可能性があります.while(cin>>a[0]>>a[1]>...>>a[9])のような方法で実現してください.2.入力データはランダムで、等しい可能性があります.
経験の総括
入力時にパリティを判断し、それぞれ2つの配列に格納し、出力をソートすればよい.
ACコード
時間制限: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