题解 CF300A 【Array】
这是一个结论题,大概入门难度吧,不知道怎么就成蓝题了。。。
注:设第一个集合的乘积为a,第二个集合的乘积为b,第三个集合的乘积为c。
只要你有初中文化水平,就可以知道——任何数乘零皆得零
这不就是个签到题了么所以呢?
先读入每一个数,然后开两个数组,一个存正数,一个存负数。
我们先考虑这$n$个数中有正数也有负数的情况
- 开始处理a的值,为了尽量简化代码,直接凑一个负数就行了,所以把负数数组的第一个放到第一个集合里,完毕.
- 然后开始处理b的值,同样为了尽量简化代码,直接把正数数组的第一个放到第二个集合里,完毕.
- 然后再把剩下的第二个到最后一个的正数和负数全部和$0$放在一起,于是——$c==0$。完事了。。。
再考虑下这$n$个数中只有负数和$0$的情况
- 其实与第一种情况大致相同,只不过凑正数时要用两个负数(负负得正的思想)就行了。
至于只有正数的情况
- 因为题目保证有解,只有正数是永远也乘不出负数的,该情况不存在