玩游戏

时间限制: 2000 ms 内存限制: 131072 kb
总通过人数: 0 总提交人数: 0
Special Judge

题目描述

金窝银窝,不如自己的狗窝。这也是为什么年夜饭是过春节必不可少的一个重要环节的原因。

饭后,小汤米和家人玩起了游戏。这里给出这个游戏的简要介绍:

  1. 一开始有一个长度为 $n$ 的非负整数序列 $p_1, p_2, \cdots, p_n$,游戏要求这个序列中的任何数字在任何时候都应该是非负的。
  2. 你可以在这个序列中选择两个连续的正整数 $p_i$ 和 $p_{i + 1}$ $(1 \leq i < n)$ 并让它们减去它们之中的最小值(即$\min(p_i, p_{i + 1})$),这个操作的得分为 $\min(p_i, p_{i + 1})$。
  3. 当序列中不存在两个连续的正整数时,游戏结束,否则你可以继续做这样的操作。你的任务是在结束游戏时使你的得分尽可能大。

显然这样的游戏在至多在 $n - 1$ 次操作后就会结束,请你给出能够得到最大得分的一组操作方案。

输入

第一行是一个正整数 $T$ $(1 \leq T \leq 61)$,表示数据组数。

对于每组数据,第一行是一个正整数 $n$ $(1 \leq n \leq 3 \cdot 10^5)$。

第二行是 $n$ 个由空格分隔的整数 $p_1, p_2, \cdots, p_n$ $(0 \leq p_i \leq 10^9)$。

保证所有数据的 $n$ 之和不超过 $1.5 \cdot 10^6$。

输出

对于每组数据,首先输出一行 Case #number: m,其中 $\mathrm{number}$ 表示这是第 $\mathrm{number}$ 组数据,$m$ 表示操作的数量 $(0 \leq m \leq n - 1)$。

在接下来的 $m$ 行中,按时间顺序输出所有操作。具体来说,在这 $m$ 行的每一行中输出一个整数 $i$ $(1 \leq i < n)$,表示一个作用于 $p_i$ 和 $p_ {i + 1}$ 的操作,使得所有操作可以从上到下依次进行,操作完毕后游戏恰好结束,并且最终的得分最大。

如果有许多种操作方案能够使得得分最大,输出其中的任何一种均可。

输入样例

2
4
2 1 3 1
5
2 2 1 3 1

输出样例

Case #1: 2
3
1
Case #2: 3
3
1
4

相关推荐