时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
富婆看上了讨厌鬼,给予了讨厌鬼银行卡的密码,但是富婆的钱并不好骗,于是讨厌鬼制定了一个计划,计划表现为一个长度为

序列

,第

个数为

,

若为正数则说明该天可以从银行内取

块钱,若为负数则说明要存进

块钱.为了不被富婆发现,讨厌鬼
必须选择连续一段天数进行操作,不可以不选。
于是讨厌鬼找到了你,希望你计算他有几种方法能使得到的钱最多,并且因为富婆不知道哪一天会改密码,讨厌鬼将提出

个询问,第

个询问表示在前

天时讨厌鬼有几种方法获得最多的钱又或者损失最少的钱。
输入描述:
第一行两个正整数
分别表示序列
的长度和询问的次数。
第二行

个用空格分开的整数,第

个为
)
表示讨厌鬼第

天可以获得的钱的数量。
接下来
行,每行一个整数
询问讨厌鬼在前i天时可以获得最多钱的方法数。
输出描述:
输出
行,每行一个整数,表示讨厌鬼可以得到最多钱的方法数。
示例1
说明
前2天,有且仅有1种,就是仅在第二天取钱
前4天,可以有[2,2],[2,4],[4,4]三种方法取到1块钱
前5天,有[4,5],[2,5]两种方法取到2块钱
备注:
数据读入输出量较大,请使用较快的读入输出方式。