fork(1) download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int getMax(int a[], int size) {
  4. int x = 0;
  5. for (int i = 1; i < size; i++) {
  6. if (a[x] < a[i]) {
  7. x = i;
  8. }
  9. }
  10. return x;
  11. }
  12.  
  13. int solve() {
  14. int ret = 0;
  15. int n, q;
  16. scanf("%d %d", &n, &q);
  17.  
  18. int *d = (int *)malloc(n * sizeof(int));
  19. if (d == NULL) {
  20. printf("ERROR\n");
  21. return -1;
  22. }
  23.  
  24. for (int i = 0; i < n; i++) {
  25. scanf("%d", &d[i]);
  26. }
  27. for (int i = 0; i < q; i++) {
  28. int x = getMax(d, n);
  29. d[x] /= 2;
  30. }
  31. for (int i = 0; i < n; i++) {
  32. ret += d[i];
  33. }
  34.  
  35. free(d);
  36. return ret;
  37. }
  38.  
  39. int main(void) {
  40. printf("%d\n", solve());
  41. return 0;
  42. }
Success #stdin #stdout 0.01s 5320KB
stdin
7 2
10 40 60 30 80 5 30

stdout
185