#ARC138A. 更高的得分

更高的得分

更高的得分

时间限制:3s
空间限制:512MB

题目描述

有一个长度为 NN 的整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)。称 AA 的前 KK 项之和为它的分数,并设输入序列的初始分数为 ss。

你可以任意多次选择序列中两个相邻的元素并交换它们。请判断能否使分数至少变为 s+1s+1;若可以,求所需的最少交换次数。

输入格式

输入包含两行:

第一行包含两个整数 N,KN,K。

第二行包含 NN 个整数 A1,A2,…,ANA_1,A_2,\ldots,A_N。

输出格式

若无法达成目标,输出 -1;否则输出所需的最少交换次数。

样例输入 1

4 2
2 1 1 2

样例输出 1

2

样例输入 2

3 1
3 2 1

样例输出 2

-1

样例输入 3

20 13
90699850 344821203 373822335 437633059 534203117 523743511 568996900 694866636 683864672 836230375 751240939 942020833 865334948 142779837 22252499 197049878 303376519 366683358 545670804 580980054

样例输出 3

13

数据范围

  • 2≤N≤4×1052\le N\le 4\times 10^5;
  • 1≤K≤N−11\le K\le N-1;
  • 1≤Ai≤1091\le A_i\le 10^9。
子任务编号 分值 特殊限制
1 20 K=1K=1
2 40 N≤3000N\le 3000
3 无特殊限制