题目描述
blablabla
样例
blablabla
算法1
贪心
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 100010;
typedef long long LL;
int a[N], b[N];
int main() {
int n, k, l;
cin >> n >> k >> l;
for (int i = 0; i < n * k; i ++ ) {
cin >> a[i];
}
sort(a, a + n * k);
int total = 0;
for (int i = 0; a[i] <= a[0] + l && i < n * k; i ++ ) {
b[i + 1] = a[i];
total++;
}//找出学习能力最差的
// cout << total << endl;
// for (int i = 1; i <= total; i ++ ) {
// cout << b[i] << " ";
// }
// cout << endl;
int i = 1, cnt = 0;
LL ans=0;
if(total<n){
ans=0;//不够人数
}else{//贪
while (cnt < n) {
ans += (LL)b[i];
cnt++;
if (i + k - 1 + n - cnt < total) {
i += k;
}
else {
i = total - (n - cnt) + 1;
}
// if (i + k - 1 + n - cnt == total) {
// i++;
// }
}
}
cout << ans << endl;
}