首页 > 试题广场 >

小红取数

[编程题]小红取数
  • 热度指数:72 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个长度为 n 的正整数数组。你需要从中挑选一些元素,使得所选元素的乘积为奇数,且所选元素的数量尽可能多。
\hspace{15pt}请输出最多能选多少个元素;如果无论如何选择都无法使乘积为奇数,则输出 -1


输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 10^5\right),表示数组长度。 
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left(1 \leqq a_i \leqq 10^9\right),表示数组元素。


输出描述:
\hspace{15pt}如果不存在选取方案,输出 -1;否则,输出最大可选元素的数量。
示例1

输入

3
1 2 3

输出

2

说明

\hspace{15pt}在该样例中,可以选取元素 13,它们的乘积 1 \times 3 = 3 为奇数。我们可以证明,这是最多选取元素的数量。
示例2

输入

1
2

输出

-1

这道题你会答吗?花几分钟告诉大家答案吧!