特殊的排序
程序员文章站
2022-03-06 18:44:34
现在给你一个长度为n的序列a,你可以根据需要执行下面的操作任意次。对于任意两个数字ai和aj,如果ai+aj的和是奇数,则可以将这两个数字进行交换。现在,我们想让排出的序列字典序最小,那么得到序列是?P.S.字典序,对于两个序列,先比较第一位,如果第一位相同,则比较第二位,第二位也相同,就比较第三位……如果所有位置都相同,则两个序列一样大。如果不同,则根据这一位上的大小,得到结果。数字大的序列比较大。输入格式第一行一个数字n,代表数字的数量。第二行n个空格间隔的整数,第i个数字代表序列中...
现在给你一个长度为n的序列a,你可以根据需要执行下面的操作任意次。
对于任意两个数字ai和aj,如果ai+aj的和是奇数,则可以将这两个数字进行交换。
现在,我们想让排出的序列字典序最小,那么得到序列是?
P.S.
字典序,对于两个序列,先比较第一位,如果第一位相同,则比较第二位,第二位也相同,就比较第三位……如果所有位置都相同,则两个序列一样大。
如果不同,则根据这一位上的大小,得到结果。数字大的序列比较大。
输入格式
第一行一个数字n,代表数字的数量。
第二行n个空格间隔的整数,第i个数字代表序列中的第i个数字ai
0 < n < 1000
0 < ai < 10000
输出格式
输出只有一行,为n个由空格间隔的整数。
样例输入
3
1 7 4
样例输出
1 4 7
#include<iostream>
#include<algorithm>
using namespace std;
int a[1005];
bool temp[2];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
temp[a[i]%2]=true;
}
if(temp[0]&&temp[1])
sort(a,a+n);
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
}
本文地址:https://blog.csdn.net/m0_51794965/article/details/110109210
上一篇: TCP链接建立到释放过程
下一篇: NAT基本IP地址转换原理