#1160. 贝贝的海贝展

贝贝的海贝展

题目背景

海曙区“呦呦海贝”月赛即将开始,贝贝想在活动现场布置一个小小的海贝展,和参加月赛的小伙伴们分享自己的收藏。

题目描述

贝贝将 NN 个海贝收藏盒排成一行,从左到右编号为 00 到 N−1N-1。第 ii 个盒子中有 aia_i 枚海贝,其中 aia_i 是一个非负整数。

展台上只有最左边的 FF 个盒子位于展示区。为了让小伙伴们看到足够多的海贝,贝贝希望这 FF 个盒子中的海贝总数至少为 TT。

每次整理时,贝贝可以交换两个相邻盒子的位置。盒子中的海贝不能取出,也不能在盒子之间转移。

请你帮助贝贝求出:最少需要进行多少次交换,才能使最左边的 FF 个盒子中的海贝总数至少为 TT?如果无论怎样交换都无法达到目标,请输出 NO。

输入格式

第一行包含三个整数 N,F,TN,F,T,分别表示盒子的数量、展示区中的盒子数量和所需的海贝总数。

第二行包含 NN 个整数 a0,a1,…,aN−1a_0,a_1,\ldots,a_{N-1},依次表示每个盒子中的海贝数量。

输出格式

输出一行。如果无法达到目标,输出 NO;否则,输出一个整数,表示最少交换次数。

样例 1

6 2 27
10 4 20 6 3 3
1

样例 1 解释

交换装有 44 枚和 2020 枚海贝的两个相邻盒子后,各盒子中的海贝数量依次为 10,20,4,6,3,310,20,4,6,3,3。最左边两个盒子中的海贝总数为 30≥2730\geq27,因此只需交换一次。

样例 2

6 5 5000000000
1000000000 1000000000 0 1000000000 1000000000 1000000000
3

样例 2 解释

要使最左边五个盒子中的海贝总数达到 5×1095\times10^9,这五个盒子都必须装有 10910^9 枚海贝。因此,需要将编号为 22 的空盒子移到最右端,最少需要三次相邻交换。

样例 3

3 2 100
20 30 60
NO

样例 3 解释

任意两个盒子中的海贝总数最多为 60+30=90<10060+30=90<100,因此无法达到目标。

样例 4

1 1 100
100
0

样例 4 解释

初始状态已经达到目标,无需交换。

数据范围

对于所有测试数据,保证:

  • 1≤N≤1001\leq N\leq100;
  • 1≤F≤N1\leq F\leq N;
  • 0≤T≤10110\leq T\leq10^{11};
  • 0≤ai≤1090\leq a_i\leq10^9。

本题采用子任务计分。只有通过一个子任务内的全部测试点,才能获得该子任务的分数。

子任务 分值 附加限制
11 66 N≤2N\leq2,ai≤100a_i\leq100,T≤109T\leq10^9
22 1919 ai≤1a_i\leq1
33 1616 N≤20N\leq20
44 3030 ai≤100a_i\leq100
55 2929 无附加限制