- 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;
}