枚举法
2026-02-09 17:52:11
发布于:四川
19阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k,a[1010]={},max = 0;
cin >> n >> k;
for(int i = 1;i <= n;i++){
cin >> a[i];
}
//输入输出 max为最大价值
sort(a+1,a+n+1);
//输入价值从小到大排序
//暴力枚举
for(int i = 1;i <= n;i++){
for(int j = i;j <= n;j++){
//i,j为数组a[i]到a[j]
if(a[j]-a[i]<=k){ //判断x-y是否<=k
int sum = 0; //sum统计当前最大价值,每次初始化为0
for(int x = i;x <= j;x++){
sum += a[x];
}//统计最大价值
if(sum > max){
max = sum;
}//判断是否总价值最大
}
}
}
cout << max;//输出
return 0;
}
全部评论 1
受着
2026-02-09 来自 四川
0








有帮助,赞一个