- toc {:toc}
νμ΄
μ무리 λ΄λ μ 체μ μΈ λ‘μ§μ λ§λλ° κ³μ νλ €μ μ κ·Έλ°κ° νκ³ λ΄€λλ λ°λ³΄κ°μ΄ λ°°μ΄μ μμμ 1 λ‘ λκ³ sort λ 0 λΆν° μμνλ€. λ€μ 0 μΌλ‘ μ 체λ₯Ό λ§μΆ°μ€¬λλ ν΅κ³Όνλ€.
κ°κ²©μ΄ μμ μ λ¬ΌλΆν° λ£κΈ° μμνλ€. λ¨Όμ ν μΈν μ μλ κ°μλ§νΌ ν μΈνλ©΄μ μ΄ν©μ μμ°κ³Ό λΉκ΅νλ€. ν μΈν μ μλ κ°μκ° λλλ μμ°μ΄ μ΄κ³Όνμ§ μλλ€λ©΄ λ μ΄ μ μλ κ°λ₯μ±μ΄ μκΈ° λλ¬Έμ μ΄μ μ λ°κ° ν μΈ νλ μ λ¬Όμ μ κ°μ μ£Όκ³ μ΄ μ μλλ‘ λ°κ°μ λ€μ λν΄μ£Όκ³ , μμ§ μ¬μ§ μμ μ λ¬Ό μ€ κ°μ₯ μΌ μ λ¬Όμ ν μΈν΄μ λνκ³ μμ°κ³Ό λΉκ΅νλ€.
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
double price[100005];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
long long n, b, a;
double sum = 0, res = 0;
cin >> n >> b >> a;
for(int i = 0; i < n; i++){
cin >> price[i];
}
sort(price, price+n);
for(int i = 0; i < a; i++){
sum += price[i]/2;
if(sum > b){
cout << res << endl;
exit(0);
}
res++;
if(i == n-1) {
break;
}
}
for(int i = a; i < n; i++){
sum += price[i-a] / 2;
sum += price[i] / 2;
if(sum > b){
break;
}
res++;
}
cout << res << endl;
return 0;
}