T469715 [2024迎新马拉松] 101
题目描述
给定长度 $N$ 的整数序列 $a_1, a_2, \ldots, a_N$,其中 $0 \le a_i \le 9$。你将对序列做若干次操作,每次可以:
- 操作一,选择某个序列元素并将它增 $1$ 或减 $1$。特殊地,对 $9$ 增 $1$ 将得到 $0$;对 $0$ 减 $1$ 将得到 $9$。
- 操作二,移除序列的第一个元素。
- 操作三,移除序列的最后一个元素。
以上操作没有顺序要求。请计算至少需要多少次操作,才能将序列变为
$$\underbrace{1,1,\ldots,1}_{K个},\underbrace{0,0,\ldots,0}_{K个},\underbrace{1,1,\ldots,1}_{K个}$$
——长度缩减至 $3K$,并且前 $K$ 个、后 $K$ 个元素都是 $1$,中间 $K$ 个都是 $0$。
输入格式
第一行包含两个整数 $N, K$。
第二行包含长度 $N$ 的整数序列 $a_1, a_2, \ldots, a_N$。
输出格式
一个整数,表示至少需要多少次操作。
说明/提示
【样例解释#$1$】
按顺序执行以下操作,可以得到序列 $1, 0, 1$:
- 将此时的 $a_3$ 减 $1$,序列变为 $7, 1, 1, 9, 4$;
- 将此时的 $a_1$ 移除,序列变为 $1, 1, 9, 4$;
- 将此时的 $a_2$ 减 $1$,序列变为 $1, 0, 9, 4$;
- 将此时的 $a_4$ 移除,序列变为 $1, 0, 9$;
- 将此时的 $a_3$ 增 $1$,序列变为 $1, 0, 0$;
- 将此时的 $a_3$ 增 $1$,序列变为 $1, 0, 1$。
没有比以上更优的操作方案,但最优操作方案并不唯一。
【样例解释#$2$】
无需任何操作就可以得到目标序列 $1, 1, 0, 0, 1, 1$。
【数据规模】
本题共有四个子任务,每个子任务捆绑计分:
- 子任务一,占分 $30\%$,保证 $N = 3K$;
- 子任务二,占分 $30\%$,保证 $N \le 10000$;
- 子任务三,占分 $20\%$,保证 $0 \le a_i \le 1$;
- 子任务四,占分 $20\%$,无特殊约定。
对于全部测试数据,保证 $1 \le 3K \le N \le 10^6$,$0 \le a_i \le 9$。