QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 512 MB Points totaux : 100 Hackable ✓

#18364. 高级程序设计

Statistiques

题目背景

超人老师的《高级程序设计》极其硬核。他丧心病狂地布置了 $n$ 个高难度大作业,涵盖“古籍 Online Editor”、RISC-V智能车、大模型Agent、C++上位机,甚至还要开发一架 RISC-V 智能飞机。由于难度实在太大,大家写出来的飞控系统惨不忍睹,导致线下验收时这些飞机根本飞不稳,在场地乱飞,场面极度危险。 因为多次迟交作业,你不仅面临着挂科危机,应对令人窒息的全班屏幕共享盘问,还要冒着线下验收时被失控飞机撞击的物理风险。 为了自救(兼保命),你试图以“参加竞赛”为由请假并申请合并作业,但超人老师总会发出那句经典的灵魂拷问:
“什么比赛,请假我必须准假?” 只要回答:“老师,我把所有大作业串成了『大模型空地协同与数字人文』参赛系统(车机联动+Agent大脑+C++监控+古籍云交互)!”超人老师听后定会欣然准假,并一次性结清你的所有成绩。

题目描述

这学期你一共需要完成 $n$ 个大作业,按照交付演示的顺序排成一列。由于迟交扣分和完成度不佳,对于第 $i$ 个大作业,如果你去屏幕共享挨个独立演示,你的初始预期得分仅为 $a_i$。

为了挽救分数、远离挂科,你可以至多一次策划“大作业融合参赛”操作,用做得好的作业去拉高那些烂尾作业的平均分:选择一个长度不超过 $k$ 的连续大作业区间 $[l,r]$,向超人老师报备你将它们整合成了一个超级大项目(前端 + 硬件 + AI 大脑 + Qt 上位机的究极缝合怪)。

超人老师准假后,这几个连续的大作业就不需要挨个演示了。他会根据这个参赛项目的整体水平给出一个综合分,这个综合分等于这几个大作业初始预期得分的平均值:

$$ \frac{a_l+a_{l+1}+\dots+a_r}{r-l+1} $$

也就是说,区间内每一个大作业的最终得分,都会变成这个平均分。

你是一个极致的“单项分奴”。对于这 $n$ 个大作业中的每一个位置 $i$,你都想算一算:经过至多一次融合操作后,第 $i$ 个大作业的得分 $a_i$ 最大 可以被拉高到多少?

注意:你需要输出所有位置的答案;但每个大作业的最大可能得分是独立计算的。也就是说,为了让 Qt 上位机拿到最高分而假设选择的融合区间,不会影响你计算智能车最高分时的理论区间选择。

输入格式

第一行两个整数 $n,k$ ( $1\leq n\leq 2\times 10^{5}$ , $1\leq k\leq n$ )。分别代表超人老师布置的大作业总数,以及允许整合成一个项目的最大连续大作业数量。

第二行 $n$ 个整数 $a_{1},a_{2},\ldots ,a_{n}$ $(- 10^{9}\leq a_{i}\leq 10^{9})$ ,代表你对每个大作业独立演示时的初始预期得分。超人老师的评分标准极为严苛,迟交太久或CMake编译直接报错的项目可能会得到负分。

输出格式

输出 $n$ 行。

第 $i$ 行输出一个最简分数,表示第 $i$个大作业能达到的最大得分:

$$ \mathrm{max}_{i} $$

每个分数均须写成 $x / y$ 的形式,其中:

  • $y > 0$;
  • $\gcd (|x|,y) = 1$.

特别地,如果答案为0,则必须输出为0/1。 注意,千万不要有多余的空格

样例

输入

9 4
13 4 6 5 3 1 3 5 70

输出

13/1
17/2
23/3
7/1
14/3
79/4
26/1
75/2
70/1

输入

7 3 
-32 -34 -3 1 -98 56 66

输出

-23/1
-12/1
-1/1
1/1
8/1
61/1
66/1

输入

3 2 
-1 1 1

输出

0/1
1/1
1/1

说明

对于样例中的序列

$$ [13,4,6,5,3,1,3,5,70], $$

当 $k = 4$ 时,各位置的最优答案分别为

$$ 13,\frac{17}{2},\frac{23}{3},7,\frac{14}{3},\frac{79}{4},26,\frac{75}{2},70. $$

例如:

  • 对于位置4,选择区间[1,4],平均值为 $\frac{13 + 4 + 6 + 5}{4} = 7$ ,因此答案为7/1;
  • 对于位置6,选择区间[6,9],平均值为 $\frac{1 + 3 + 5 + 70}{4} = \frac{79}{4}$ ,因此答案为79/4;
  • 对于位置8,选择区间[8,9],平均值为 $\frac{5 + 70}{2} = \frac{75}{2}$ ,因此答案为75/2。

你可以不进行任何操作,这等价于选择长度为1的区间 $[i,i]$ 。

备注

你可以不进行任何操作,这等价于选择长度为 $1$ 的区间 $[i,i]$。

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.