QOJ.ac

QOJ

Time Limit: 10 s - 20 s Memory Limit: 1024 MB Total points: 13

#5977. 平滑窗口

Statistics

Adamma 是一位对温度感兴趣的气候科学家。每一分钟,她都会记录当前的温度作为一个整数,从而得到一个长整数序列:x1, x2, ..., xN。(Adamma 使用她自己独特的温标,而不是摄氏度或开尔文等常见的温标,因此数值可能是很大的负数!)她经常在电脑屏幕上绘制这些温度的曲线图。

今天早上,她决定计算该序列的滑动平均值,以便得到更平滑的曲线图。她使用了一个大小为 K 的平滑窗口,这意味着她将 N 个温度的序列转换为了 (N - K + 1) 个平均温度的序列:s1, s2, ..., sN-K+1 每个 si 都是 xi, xi+1, ..., xi+K-1 这些值的平均值。原始的 xi 值均为整数,但某些 si 可能是分数。

不幸的是,Adamma 忘记保存原始的温度序列了!现在她想回答一个不同的问题——最高温度和最低温度之间的差值是多少?换句话说,她需要计算 max{x1, ..., xN} - min{x1, ..., xN}。 但她只拥有 NK 以及平滑后的序列。

经过思考,Adamma 意识到这可能是不可能的,因为可能存在多个有效的答案。在这种情况下,她想知道在所有能够产生她所给出的平滑序列(对于给定的 NK)的原始序列中,最小可能的差值是多少。

输入格式

输入的第一行包含测试用例的数量 T。接下来是 T 个测试用例;每个测试用例包含两行。第一行包含由空格分隔的整数 NK。第二行包含由空格分隔的整数值 sum1, sum2, ..., sumN-K+1 其中 sisumi / K 给出。

输出格式

对于每个测试用例,输出一行 "Case #x: y",其中 x 是测试用例编号(从 1 开始),y 是最高温度和最低温度之间最小可能的差值。

数据范围

内存限制:1 GB。

1 ≤ T ≤ 100。

2 ≤ KN

sumi 为 -10000 到 10000 之间的整数(包含边界)。

小数据集(6 分)

时间限制:10 秒。

2 ≤ N ≤ 100。

大数据集(7 分)

时间限制:20 秒。

2 ≤ N ≤ 1000。

2 ≤ K ≤ 100。

样例

样例输入 1

3
10 2
1 2 3 4 5 6 7 8 9
100 100
-100
7 3
0 12 0 12 0

样例输出 1

Case #1: 5
Case #2: 0
Case #3: 12

说明

在 Case #1 中,平滑后的序列为:

0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5

得到最小差值的整数序列为:

0, 1, 1, 2, 2, 3, 3, 4, 4, 5

请注意,序列:

0.5, 0.5, 1.5, 1.5, 2.5, 2.5, 3.5, 3.5, 4.5, 4.5

虽然会产生相同的平滑序列且最大差值为 4,但这不是一个有效答案,因为原始温度已知必须为整数。

在 Case #2 中,我们只知道 100 个原始值的总和为 -100。原始值可能全部恰好为 -1,在这种情况下,最高温度和最低温度之间的差值为 0,这是差值所能达到的最小值!

在 Case #3 中,原始序列可能是:

-4, 8, -4, 8, -4, 8, -4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.