P2629 好消息,坏消息

    • 219通过
    • 880提交
  • 题目提供者未央丶
  • 标签 前缀和 单调队列 线性结构 队列 高性能
  • 难度 普及+/提高
  • 时空限制 1s / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 推荐的相关题目

    题目描述

    uim在公司里面当秘书,现在有n条消息要告知老板。每条消息有一个好坏度,这会影响老板的心情。告知完一条消息后,老板的心情等于之前老板的心情加上这条消息的好坏度。最开始老板的心情是0,一旦老板心情到了0以下就会勃然大怒,炒了uim的鱿鱼。

    uim为了不被炒,知道了了这些消息(已经按时间的发生顺序进行了排列)的好坏度,希望研究如何不让老板发怒。

    uim必须按照时间的发生顺序逐条将消息告知给老板。不过uim可以使用一种叫“倒叙”的手法,例如有n条消息,小a可以从k,k+1,k+2...n,1,2...k-1这种顺序通报。

    他希望知道,有多少个k,从k开始通报到n然后从1通报到k-1可以让老板不发怒。

    输入输出格式

    输入格式:

    第一行一个整数n(1 <= n <= 10^6),表示有n个消息。

    第二行n个整数,按时间顺序给出第i条消息的好坏度Ai(-1000 <= Ai <= 1000)

    输出格式:

    一行一个整数,表示可行的方案个数。

    输入输出样例

    输入样例#1: 复制
    4
    -3 5 1 2 
    输出样例#1: 复制
    2
    

    说明

    样例解释

    [5 1 2 -3]或[1 2 -3 5]

    对于25%数据n<=1000

    对于75%数据n<=10000

    对于100%数据n<=10^6

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。