测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A31973. 宝箱

填空题 较难
知识点

题目描述

宝箱

题目描述

小杨发现了n个宝箱,其中第i个宝箱的价值是ai。

小杨可以选择一些宝箱放入背包并带走,但是小杨的背包⽐较特殊,假设小杨选择的宝箱中最大价值为x,最小价值为y ,小杨需要保证 x-y≤k,否则小杨的背包会损坏。

小杨想知道背包不损坏的情况下,自己能够带走宝箱的总价值最大是多少。

输入格式

第一行包含两个正整数n,k,含义如题面所示。

第二行包含n个正整数 a1,a2, , ,an,代表宝箱的价值。

输出格式

输出一个整数,代表带走宝箱的最大总价值。

样例1

输入

5 1
1 2 3 1 2

输出

7

样例解释

在背包不损坏的情况下,小杨可以拿走两个价值为2的宝箱和一个价值为3的宝箱。

数据范围

对于全部数据,保证有 1≤n≤1000,1≤k≤1000 ,1≤ ai ≤1000  

参考答案

N = 1010 a = [0] * N def main(): n, k = map(int, input().split()) aa = input().split() for i in range(1, n + 1): a[i] = int(aa[i-1]) a[1:n + 1] = sorted(a[1:n + 1]) ans = 0 for i in range(1, n + 1): sum = 0 for j in range(i, 0, -1): if a[i] - a[j] <= k: sum += a[j] else: break ans = max(ans, sum) print(ans) if __name__ == "__main__": main()
上一题 下一题