#include <stdio.h>
#include <stdlib.h>
//ret に答えを入れてメイン関数に返す
int solve() {
    int ret=0;

    //第２回
  //モンスターの配列を作る
    int i;
    int Mhow,Mstats;
    int* Monsters;

    printf("モンスターの数を入力して: \n");
    scanf("%d", &Mhow);//モンスターの数
    Monsters = (int*)malloc(sizeof(int) * Mhow);
    //エラー回避
    if (Monsters == NULL) {
        printf("game over\n");
        return 0;
    }
    for (i = 0; i < Mhow; i++) {
        printf("%d体目のモンスターの数値を入力して: \n",i+1);
      //Monsters[i] = scanf("%d", &Mstats);
        scanf("%d", &Mstats);
        Monsters[i] = Mstats;
        Mstats = 0;
    }

    //ボールをどのモンスターに当てるか吟味する
    int j;
    int ball,Mmax=0;

    
    printf("ボールの数を入力して: \n");
        scanf("%d", &ball);//ボールの数
    while (ball > 0) {
        for (j = 0; j < Mhow; j++) {
            if (Monsters[j] > Monsters[Mmax])Mmax = j;
        }
        Monsters[Mmax] /= 2;
        ball--;
        Mmax = 0;
    }
  
    //モンスターの数値の合計
    int k;
    for (k = 0; k < Mhow; k++) {
        ret += Monsters[k];

    }
    


    return ret;
}

//メイン関数はいじらなくて良い
int main(void) {
    printf("%d\n", solve());
    return 0;
}
