/ Vijos / 题库 /

出逃事件

出逃事件

时间限制:1秒  内存限制:256M


【问题描述】

  最近小H的宠物猫们出逃现象越发猖狂!

  为统计相关信息,他在猫屋的墙上挂了一个计数器,用以记录自最近发生出逃事件后经过的天数。所以如果某一天发生了出逃事件,这一天的计数器就为 0;如果最近的出逃是 3 天前发生的,则计数器读数就为 3。小H一丝不苟地记录了每一天计数器的读数。

  年末到了,小H准备做一些统计,然而意想不到的是,他的记录的一些条目竟然被破坏了!但小H确信他是在发生了出逃事件的某一天开始记录的。请帮助他确定,在所有与残留记录条目一致的事件序列中,基于记录的时间,最少和最多可能发生了多少次出逃事件。

【输入格式】

  输入文件的第一行是一个正整数 \(T\),表示有 \(T\) 组数据。对于每组数据,第 1 行包含一个整数 \(n\),表示从小H开始记录计数器数据的天数。第 2 行包含 \(n\) 个空格分隔的整数,若第 \(i\) 个整数是 −1,表示第 \(i\) 天的记录丢失了,若是一个非负整数 \(a_i\)(不超过 \(10^5\)),表示在第 \(i\) 天计数器的数字是 \(a_i\)。
  注意:记录中的第一天一定发生了出逃事件,但残留的记录中也许是 -1。

【输出格式】

  如果没有事件序列与小H的残留记录以及他所确定的小猫在第 1 天清晨出逃这一事实不一致,输出一个整数 −1。否则,输出两个空格分隔的整数 \(m\) 和 \(M\),其中 \(m\) 为所有事件序列中出逃的最少次数,\(M\) 为最多次数。

【输入输出样例】

 Input

3
4 
-1 -1 -1 1
10
0 -1 -1 3 0 -1 2 -1 -1 0
8
0 -1 -1 -1 2 -1 3 -1

 Output

2 3
3 5
-1

【输入输出样例说明】

  样例中第一组数据,已经知道在第1天也发生了出逃,也可以根据第4天的记录推断第3天必然有出逃发生。所以不确定的只有第2天是否发生了出逃,所以记录可能是:0 1 0 1 或 0 0 0 1。因此,总共发生了至少2次,至多3次出逃事件。

【数据限制】

  \(1 ≤ n ≤ 10^5\),\(1 ≤ T ≤ 10\)

【来源】

  Mr.he

信息

ID
1012
难度
2
分类
(无)
标签
递交数
1
已通过
1
通过率
100%
被复制
5
上传者