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 翻译