4064:【GESP2406四级】宝箱 C++

发布时间:2026/7/30 14:19:21
4064:【GESP2406四级】宝箱 C++ 【题目描述】小杨发现了nn 个宝箱其中第ii 个宝箱的价值是aiai 。小杨可以选择一些宝箱放入背包并带走但是小杨的背包比较特殊假设小杨选择的宝箱中最大价值为xx 最小价值为yy 小杨需要保证x−y≤kx−y≤k 否则小杨的背包会损坏。小杨想知道背包不损坏的情况下自己能够带走宝箱的总价值最大是多少。【输入】第一行包含两个正整数n,kn,k 含义如题面所示。第二行包含nn 个正整数a1,a2,...,ana1,a2,...,an 代表宝箱的价值。【输出】输出一个整数代表带走宝箱的最大总价值。【输入样例】5 1 1 2 3 1 2【输出样例】7【提示】样例解释在背包不损坏的情况下小杨可以拿走两个价值为22 的宝箱和一个价值为33 的宝箱。3.2.6 数据范围对于全部数据保证有 1≤n#include bits/stdc.h using namespace std; int arr[2000]; int n,k,resarr[0]; int main() { cinnk; for(int i0; in; i) { cinarr[i]; } sort(arr,arrn); for(int i1; in; i) { int ind0; for(int j0; ji; j) { if(arr[i]-arr[j]k) { indarr[j]; } } resmax(res,ind); } coutres; return 0; }≤10001≤n≤1000,0≤k≤10000≤k≤1000,1≤ai≤10001≤ai≤1000。