You‘re given an array aa of length nn. You can perform the following operation on it as many times as you want:
What is lexicographically the smallest array you can obtain?
An array xx is lexicographically smaller than an array yy if there exists an index ii such that xi<yixi<yi, and xj=yjxj=yj for all 1≤j<i1≤j<i. Less formally, at the first index ii in which they differ, xi<yi
记录偶数和奇数的个数,只要数组内同时有偶数和奇数,无论几个都可以使数组完全排序。
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 3e5 + 10; const int MOD = 1e9 + 7; int n, m, k, t; int a[MAXN]; int main() { cin >> n; bool flag1 = false, flag2 = false; for (int i = 1;i <= n;i++) { cin >> a[i]; if (a[i] % 2 == 0) flag1 = true; if (a[i] % 2 == 1) flag2 = true; } if (flag1 && flag2) sort(a+1, a+1+n); for (int i = 1;i <= n;i++) cout << a[i] << ‘ ‘; cout << endl; return 0; }
原文:https://www.cnblogs.com/YDDDD/p/10972861.html