题目分析:
若三个数的和为奇数那么有且只有两种可能:(下文用1代表奇数,用0代表偶数)
1+1+1
0+0+1
因此,我们只需要记录输入的奇数和偶数的个数,并做判断,只要满足其中一种条件即可输出YES
反之则NO
代码
#include "bits/stdc++.h" using namespace std; #define int long long #define endl "\n" #define PII pair<int,int> #define PIII pair<int,PII> const int MOD = 1e9 + 7; const int N = 3e5; bool cmp(PII p1, PII p2) { return p1.first + p1.second < p2.first + p2.second; } bool isP(char t1, char t2) { int c1 = t1 - '0'; int c2 = t2 - '0'; if ((c1 + c2) & 1)return false; return true; } void slu() { int n; cin >> n; int ji = 0, ou = 0; for (int i = 0; i < n; i++) { int t; cin >> t; if (t & 1)ji++; else ou++; } if (ji >= 3 ||(ou >= 2 && ji >= 1))cout << "YES\n"; else cout << "NO\n"; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int T; // cin >> T; T = 1; while (T--)slu(); }