0%

CodeForces 1174B

CodeForces 1174B - Ehab Is an Odd Person

Ehab Is an Odd Person

題意:

給你一個數列,當其中的兩個數奇偶不同的時候,可以將其交換。問你這個數列最小的字典順序為何?

思路:

觀察後可以發現,當整個陣列都是奇數或都是偶數時完全無法交換,因此可以直接輸出;另外的情況其實跟可以任意交換是一樣的,因此直接排序後輸出。

程式碼:

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int N, A[100007];
bool have_odd = false, have_even = false;
cin >> N;
for(int i = 0; i < N; ++i)
{
cin >> A[i];
if(A[i] % 2 == 0)
{
have_even = true;
}
else
{
have_odd = true;
}
}
if(have_odd && have_even)
{
sort(A, A + N);
}
for(int i = 0; i < N; ++i)
{
if(i != 0)
{
cout << " ";
}
cout << A[i];
}
cout << endl;
return 0;
}