Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3.  
  4. void print_array (int i , int n , double array [])
  5. {
  6. if (i < n)
  7. {
  8. if (array[i] == -0)
  9. {
  10. printf("0\n");
  11. }
  12. else
  13. {
  14. printf("%.0lf\n", array[i]);
  15. }
  16.  
  17. print_array(i + 1 , n , array);
  18. }
  19. }
  20. void f2 (int i , int n , double array [] , int op [], int sum)
  21. {
  22. if (i < n)
  23. {
  24. if (op[i] == 1)
  25. {
  26. array[i] = array[i] + 1 ;
  27. sum = sum + 1 ;
  28.  
  29. if (sum == 0)
  30. {
  31. return ;
  32. }
  33. }
  34.  
  35. f2 (i + 1 , n , array , op, sum);
  36. }
  37. }
  38. void f1 (int i , int n , double array [] , int op [], int sum)
  39. {
  40. if (i < n)
  41. {
  42. if (op[i] == 2)
  43. {
  44. array[i] = array[i] - 1 ;
  45. sum = sum - 1 ;
  46.  
  47. if (sum == 0)
  48. {
  49. return ;
  50. }
  51. }
  52.  
  53. f1 (i + 1 , n , array , op, sum);
  54. }
  55. }
  56. int main()
  57. {
  58. int n, aux = 0 , sum = 0 ;
  59. scanf("%d", &n);
  60.  
  61. double array [n];
  62. int op [n];
  63.  
  64. memset(op , 0 , sizeof(op));
  65.  
  66. for (int i = 0 ; i < n ; i++)
  67. {
  68. scanf("%lf", &array[i]);
  69.  
  70. if(aux)
  71. {
  72. if((int)array[i] % 2 != 0)
  73. {
  74. aux = !aux;
  75. op[i] = 1 ;
  76. }
  77.  
  78. array[i] = floor(array[i] / 2) ;
  79. }
  80. else
  81. {
  82. if((int)array[i] % 2 != 0)
  83. {
  84. aux = !aux;
  85. op[i] = 2 ;
  86. }
  87.  
  88. array[i] = ceil(array[i] / 2) ;
  89. }
  90.  
  91. sum = sum + array[i];
  92. }
  93.  
  94. if (sum > 0)
  95. {
  96. f1(0 , n , array , op , sum);
  97. }
  98. else if (sum < 0)
  99. {
  100. f2(0 , n , array , op , sum);
  101. }
  102.  
  103. print_array(0 , n , array);
  104.  
  105. return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement