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