在一个荒岛上,有若干人需要通过一条唯一的道路逃往两端的港口。每个人可以选择向左或向右逃生,逃生方向由输入中的正负数表示(正数表示向右,负数表示向左)。每个人的绝对值表示其战斗力。所有人移动速度相同,当两人相向而行时,会发生决斗:
需要计算最终能够成功逃生的人数。如果输入中包含0,输出-1;如果没有人能够逃生,输出0。
一个荒岛上有若干人,岛上只有一条路通往岛屿两端的港口,大家需要逃往两端的港口才可逃生。
假定每个人移动的速度一样,且只可选择向左或向右逃生。
若两个人相遇,则进行决斗,战斗力强的能够活下来,并损失掉与对方相同的战斗力;若战斗力相同,则两人同归于尽。
给定一行非 0 整数数组,元素个数不超过 30000 ;
正负表示逃生方向(正表示向右逃生,负表示向左逃生),绝对值表示战斗力,越左边的数字表示里左边港口越近,逃生方向相同的人永远不会发生决斗。
能够逃生的人总数,没有人逃生输出 0 ,输入异常时输出 −1 。
输入
5 10 8 -8 -5
输出
2
说明
第 3 个人和第 4 个人同归于尽,第 2 个人杀死第 5 个人并剩余 5 战斗力,第 1 个人没有遇到敌人。