首页 > 试题广场 >

小欧的奇数

[编程题]小欧的奇数
  • 热度指数:1005 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
小欧有一个长度为 n 的数组,现在他想挑出 3 个数,使得这 3 个数的和为奇数,如果可以挑出则输出 "YES",否则输出 "NO"。

输入描述:
一行一个整数 n,表示数组的长度。
一行 n 个整数 a_1, a_2, \dots, a_n,表示数组的元素。
3 \leq n \leq 10^5
1 \leq a_i \leq 1000


输出描述:
如果可以挑出 3 个数,使得这 3 个数的和为奇数,则输出 "YES",否则输出 "NO"。
示例1

输入

4
1 2 3 4

输出

YES

说明

选取 a_1, a_2, a_4 即可。
示例2

输入

4
2 4 6 8

输出

NO

说明

无法选取 3 个数使得和为奇数。
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n{};
    cin>>n;
    vector<int> v(n);
    for (int i = 0; i < n; ++i) cin >> v[i];
    if((count_if(v.begin(),v.end(),[](int a){return a&1;})>0&&n!=3)||
    (count_if(v.begin(),v.end(),[](int a){return a&1;})==3&&n==3)) cout<<"YES";
    else cout<<"NO";
}

发表于 2024-11-20 23:05:37 回复(0)