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