#P13215. [GCJ 2015 #1A] Mushroom Monster

    ID: 13039 远端评测题 5000~10000ms 1024MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>模拟贪心2015Google Code Jam

[GCJ 2015 #1A] Mushroom Monster

Description

Kaylin 喜欢蘑菇。只要把蘑菇放到她的盘子里,她就会把它们吃掉!在本题中,她正在吃一盘蘑菇,而 Bartholomew 会不断往她的盘子里加蘑菇。

我们每隔 1010 秒观察一次她盘子里的蘑菇数量。Bartholomew 可以在任何时刻往盘子里加任意个(非负整数)蘑菇,蘑菇离开盘子的唯一方式就是被 Kaylin 吃掉。

请你用两种不同的方法计算出 Kaylin 至少吃了多少个蘑菇:

  1. 假设 Kaylin 可以在任何时刻吃掉任意数量的蘑菇。
  2. 假设从第一次观察开始,只要盘子里有蘑菇,Kaylin 就以一个恒定的速度吃蘑菇。

例如,若输入为 1010 55 1515 55

用第一种方法,Kaylin 至少吃了 1515 个蘑菇:她先吃掉 55 个,然后 Bartholomew 又加了 1010 个蘑菇,然后她又吃掉了 1010 个。无论如何,她都不可能吃得更少。

用第二种方法,Kaylin 至少吃了 2525 个蘑菇。我们可以确定她吃蘑菇的速度至少为每秒 11 个。她一开始盘子里有 1010 个蘑菇。在前 1010 秒内,她吃掉 1010 个蘑菇,Bartholomew 又加了 55 个蘑菇。接下来的 55 秒,她吃掉 55 个蘑菇,然后盘子在 55 秒内保持空,接着 Bartholomew 又加了 1515 个蘑菇。最后 1010 秒,她又吃掉了 1010 个蘑菇。

Input Format

第一行输入一个整数 TT,表示测试用例的数量。接下来有 TT 组测试数据。每组测试数据包含两行,第一行为一个整数 NN,第二行为 NN 个用空格分隔的整数 mim_i,表示 Kaylin 盘子里在每个 1010 秒时刻的蘑菇数量(包括初始时刻)。

Output Format

对于每组测试数据,输出一行,格式为 "Case #xx: yy zz",其中 xx 表示测试用例编号(从 11 开始),yy 表示用第一种方法计算的 Kaylin 至少吃掉的蘑菇数量,zz 表示用第二种方法计算的 Kaylin 至少吃掉的蘑菇数量。

4
4
10 5 15 5
2
100 100
8
81 81 81 81 81 81 81 0
6
23 90 40 0 100 9
Case #1: 15 25
Case #2: 0 0
Case #3: 81 567
Case #4: 181 244

Hint

数据范围

  • 1T1001 \leq T \leq 100

小数据集(7 分)

  • 时间限制:5 秒。
  • 2N102 \leq N \leq 10
  • 0mi1000 \leq m_i \leq 100

大数据集(8 分)

  • 时间限制:10 秒。
  • 2N10002 \leq N \leq 1000
  • 0mi100000 \leq m_i \leq 10000

由 ChatGPT 4.1 翻译