1.n个人的体重将两个人组成一组且这两个人的体重不能超过k求最多能组成几组6 545 51 57 70 65 40结果2#include iostream #include algorithm using namespace std; int main() { int n, k; cin n k; int *array new int[n]; for (int i 0; i n;i) { cin array[i]; } int count 0; sort(array,arrayn-1); int i 0; while (i n-1) { if (abs(array[i]-array[i1]) k) { count; i 2; } else i; } cout count endl; return 0; }6个数添加到只能容下两个元素的集合这两个数的位置距离相差不超过2使得集合内元素相加最大6 2 24 1 2 3 1 2结果6#include iostream #include algorithm #include vector using namespace std; bool comp(int a, int b) { return a b; } int main() { int n, m, k; cin n m k; int *array new int[n]; for (int i 0; i n; i) { cin array[i]; } if (n 1) { cout array[0]; } else { int max 0; for (int i 0; i n-1; i) { int cumax array[i]; //对当前元素前后k个元素进行排序 int low (low (i - k) 0 ? (i - k) : 0) i ? low:low; //if (low i) low; int high (high (i k) (n - 1) ? (i k) : n - 1) i?high--:high; //if (high i) high--; vectorint subsort; for (int j low; j high; j) { if (j ! i) subsort.push_back(array[j]); } sort(subsort.begin(), subsort.end(),comp); for (int h 0; h m-1; h) {//将前m个元素加入集合中 cumax subsort[h]; } if (max cumax) max cumax; } cout max endl; } return 0; }