#CF1526C1. 药水(简单版)

药水(简单版)

药水(简单版)

  • 时间限制:1 秒
  • 内存限制:256 MiB

题目描述

这是该问题的简单版本。唯一的区别在于本版本中 n≤2000n \leq 2000。只有当你同时解决了两个版本的问题时,才能进行 hack。

有 nn 个药水排成一行,药水 11 在最左边,药水 nn 在最右边。每个药水喝下后会使你的生命值增加 aia_i。aia_i 可能为负数,表示该药水会减少你的生命值。

你初始时生命值为 00,并且你会从左到右依次经过每个药水。每到一个药水处,你可以选择喝下它或者忽略它。你必须保证你的生命值始终不为负数。

你最多能喝下多少瓶药水?

输入格式

第一行包含一个整数 nn(1≤n≤20001 \leq n \leq 2000),表示药水的数量。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(−109≤ai≤109-10^9 \leq a_i \leq 10^9),表示每瓶药水喝下后生命值的变化量。

输出格式

输出一个整数,表示在保证生命值始终不为负的情况下,最多能喝下的药水数量。

样例输入 1

6
4 -4 1 -3 1 -3

样例输出 1

5

数据范围

对于所有数据,1≤n≤20001\le n\le2000,−109≤ai≤109-10^9\le a_i\le10^9。计算生命值时应使用 64 位整数。

子任务编号 分值 特殊限制
1 30 n≤20n\le20
2 n≤300n\le300
3 40 无特殊限制