#P12660. [KOI 2023 Round 1] 积木堆叠

[KOI 2023 Round 1] 积木堆叠

题目背景

试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。

按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。

题目描述

正在进行一项积木堆叠的游戏。共有 NN 个可以向上堆积积木的位置,从第 11 个格子到第 NN 个格子依次排列。

当前第 ii 个格子上堆积了 AiA_i 个积木。由于当前堆积的形状杂乱无章,想要通过以下条件将其整理:

  • 每个格子上的积木数量要在 LLRR 之间(包括 LLRR)。
  • 每个格子上的积木数量要单调不减:对于 1iN11 \leq i \leq N - 1,第 ii 个格子上的积木数量不应大于第 i+1i + 1 个格子的数量。

你可以将某个格子上的积木移动到相邻的格子中,反复进行操作以达成目标。现在需要判断是否可以实现目标。如果可以,还要输出最小的移动次数。

输入格式

第一行包含三个整数 NNLLRR,以空格分隔。

第二行包含 NN 个整数 A1,A2,,ANA_1, A_2, \dots, A_N,表示每个格子当前的积木数量。

输出格式

若无法达成目标,输出 1-1。若可以达成目标,输出最小的积木移动次数。

5 3 5
2 0 9 1 4
7
10 3 8
2 7 9 10 2 2 2 8 3 8
25
10 6 7
10 7 5 4 4 3 9 4 9 7
20
3 2 3
1 1 1
-1

提示

限制条件

  • 1N1001 \leq N \leq 100
  • 0LR1090 \leq L \leq R \leq 10^9
  • RL100R - L \leq 100
  • 0Ai109(1iN)0 \leq A_i \leq 10^9 \quad (1 \leq i \leq N)
  • 所有输入的数值均为整数。

子问题

  1. (7 分)N50N \leq 50, RL1R - L \leq 1
  2. (6 分)N4N \leq 4, RL50R - L \leq 50
  3. (11 分)N10N \leq 10, Ai10\sum A_i \leq 10
  4. (11 分)N50N \leq 50, Ai50\sum A_i \leq 50
  5. (30 分)N50N \leq 50, R50R \leq 50
  6. (10 分)N50N \leq 50, RL50R - L \leq 50
  7. (25 分)无额外限制