AT_arc138_a [ARC138A] Larger Score

题目描述

有一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\cdots,A_N)$。在本题中,我们将 $A$ 的前 $K$ 项的和称为**分数**。设输入给定的 $A$ 的分数为 $s$。 你可以任意次数地进行以下操作: - 选择 $A$ 中某两个相邻的元素,交换它们的值。 你的目标是使分数达到 $s+1$ 或更大。请判断目标是否可以实现,如果可以,请求出所需的最小操作次数。

输入格式

输入以如下格式从标准输入读入: > $N$ $K$ $A_1$ $A_2$ $\cdots$ $A_N$

输出格式

如果无法实现目标,输出 `-1`。如果可以实现,输出所需的最小操作次数。

说明/提示

### 限制条件 - $2 \leq N \leq 4 \times 10^5$ - $1 \leq K \leq N-1$ - $1 \leq A_i \leq 10^9$ - 所有输入值均为整数 ### 样例解释 1 首先,$s=2+1=3$。可以通过如下操作使分数达到 $4$ 或更大: - $(2,1,1,2) \to$(交换 $A_3$ 和 $A_4$ 的值)$\to (2,1,2,1) \to$(交换 $A_2$ 和 $A_3$ 的值)$\to (2,2,1,1)$ 用一次操作无法达成目标,因此所需的最小操作次数为 $2$。 由 ChatGPT 4.1 翻译