AT_atcoder12live_a Volume Control

题目背景

AtCoder社は年に一度、企業合同演奏会を開催している。 高橋社長は演奏会で指揮者をすることになった。 演奏者の音量を調整して最高の演奏にしてほしい。

题目描述

在音乐会中,有 $N$ 名演奏者横向一列排成一排,演奏时长为 $T$ 秒。我们把从左起第 $i$ 个($0\leq i\leq N-1$)演奏者称作演奏者 $i$。 对于每个演奏者,默认音量基准值为 $0$。指挥可以在每一秒选择一组满足 $0\leq L\leq R\leq N-1$ 的整数 $(L, R)$ 以及一个整数 $dV$,指示满足 $L\leq i\leq R$ 的所有演奏者 $i$,将音量变更 $dV$。在时刻 $t$ 被指示变更音量的演奏者,从时刻 $t$ 起(包括 $t$)之后的音量都会改变 $dV$。 如果多次指示变更音量,音量变化量将累计。例如,在时刻 $0$ 让演奏者 $i$ 的音量增加 $1$,在时刻 $1$ 又让演奏者 $i$ 的音量减少 $2$,那么在时刻 $1$ 其音量为 $1-2=-1$。 每个时刻 $t$,每个演奏者 $i$,都会给出理想音量 $V_{t,i}$。希望指挥尽可能指挥,使实际音量与理想音量之差的绝对值总和尽量小。

输入格式

输入依次给出演奏者人数 $N$,演奏时长 $T$,以及每时刻 $t$ 下每位演奏者 $i$ 的理想音量 $V_{t,i}$。 > $N$ $T$ > $V_{0,0}$ $\cdots$ $V_{0,N-1}$ > ⋮ > $V_{T-1,0}$ $\cdots$ $V_{T-1,N-1}$ 其中各数据满足以下约束: - $N=50$ - $T=500$ - $-3\leq V_{t,i}\leq 3$

输出格式

请按以下格式输出在每一时刻的指示。 > $L_0$ $R_0$ $dV_0$ > ⋮ > $L_{T-1}$ $R_{T-1}$ $dV_{T-1}$ - $L_t, R_t$ 为本次变更音量的演奏者范围,必须满足 $0\leq L_t\leq R_t\leq N-1$。 - $dV_t$ 为变更的音量,必须满足 $|dV_t|\leq 50$。 [查看样例](https://img.atcoder.jp/atcoder12live/F2IdigNr.html?lang=ja&seed=0&output=sample)

说明/提示

### 得分说明 设时刻 $t$,演奏者 $i$ 的实际音量为 $V'_{t,i}$,则与理想音量的差值总和为 $$ S' = \sum_{t=0}^{T-1}\sum_{i=0}^{N-1}|V_{t,i}-V'_{t,i}| $$ 如果没有任何指示,则差值总和 $S_0 = \sum_{t=0}^{T-1}\sum_{i=0}^{N-1}|V_{t,i}|$。本测试数据的得分为 $\max(S_0-S'+1, 0)$。 测试数据共有 100 组,每个测试数据的分数之和即为本次提交的得分。若有至少一组数据输出不合法或超时,则本次提交整体判定为 WA 或 TLE。 ### 输入生成方法 $V_{t,i}$ 的生成方式如下: 1. 将每个 $V_{t,i}$ 初始化为 $0$。 2. 对每个 $t$,随机生成 $0\leq a,b\leq N-1$ 的整数 $a,b$ 和 $d\in\{-1,1\}$,然后对满足 $\min(a,b)\leq i\leq \max(a,b)$ 的所有 $i$,将 $V_{t,i}$ 增加 $d$。 3. 步骤2重复三次。 ### 工具(输入生成器和可视化器) - [网页版](https://img.atcoder.jp/atcoder12live/F2IdigNr.html?lang=ja):高性能支持动画显示。 - [本地版](https://img.atcoder.jp/atcoder12live/F2IdigNr.zip):需要[Rust](https://www.rust-lang.org/ja)编译环境。 - [Windows 版编译好的可执行文件](https://img.atcoder.jp/atcoder12live/F2IdigNr_windows.zip):若不想配置 Rust 环境可用。 比赛期间,禁止分享可视化结果、解题方法与讨论等。 ### 样例说明 1 本输入样例仅作说明之用,不保证满足实际约束条件。 由 ChatGPT 5 翻译