Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.16 KB | None | 0 0
  1. #include <stdio.h>
  2. int main () {
  3.  
  4. int n,i,a,four=0,three=0,two=0,one=0,cnt1,cnt2,cnt3,sum,cnt4,rem,sum1;
  5. scanf("%d",&n);
  6. for(i=0; i<n; i++){
  7. scanf("%d",&a);
  8. if(a==1) one++;
  9. if(a==2) two++;
  10. if(a==3) three++;
  11. if(a==4) four++;
  12. }
  13. if((one>0 && two>0 && three==0 && four>0)){
  14. if(two%2==0){
  15. cnt1=two/2;
  16. rem=0;
  17. }
  18. else if(two%2!=0){
  19. cnt1=two/2;
  20. rem=2;
  21. }
  22. sum1=rem+one;
  23. if(sum1%4==0) cnt2=sum/4;
  24. else cnt2=(sum1/4)+1;
  25.  
  26. sum=cnt1+cnt2+four;
  27. printf("%d\n",sum);
  28. }
  29. else if(one>0 && two==0 && three>0 && four>0){
  30. if(one==three){
  31. cnt1=(one+three)/2;
  32. }
  33. if(one>three){
  34. rem=one-three;
  35. if(rem%4==0) cnt1=rem/4;
  36. else if (rem<4) cnt1=1;
  37. else if (rem>4) cnt1= (rem/4)+1;
  38.  
  39. }
  40. if(one<three){
  41. rem=three-one;
  42. cnt1=rem+one;
  43. }
  44. sum=four+cnt1;
  45. printf("%d\n",sum);
  46. }
  47. else if(one==0 && two>0 && three>0 && four>0){
  48. if(two%2==0) cnt1=two/2;
  49. else cnt1= (two/2)+1;
  50. sum=three+four+cnt1;
  51. printf("%d\n",sum);
  52. }
  53. else if(one>0 && two>0 && three>0 && four==0){
  54. if(one==three){
  55. cnt1=(one+three)/2;
  56. if(two%2==0) cnt2 =two/2;
  57. else cnt2=(two/2)+1;
  58. sum= cnt1+cnt2;
  59. printf("%d\n",sum);
  60. return 0;
  61. }
  62. if(one>three){
  63. rem=one-three;
  64. cnt1=three;
  65. if(two%2==0) cnt2 =two/2;
  66. else {
  67. sum1= (two*2)+rem;
  68. if(sum1%4==0) cnt2=sum1/4;
  69. else cnt2= (sum1/4)+1;
  70. }
  71. sum= cnt1+cnt2;
  72. printf("%d\n",sum);
  73. return 0;
  74. }
  75. if(one<three){
  76. rem=three-one;
  77. cnt1= rem+ one;
  78. if(two%2==0) cnt2=two/2;
  79. else cnt2= (two/2)+1;
  80. sum= cnt1+cnt2;
  81. printf("%d\n",sum);
  82. return 0;
  83. }
  84. }
  85. else if (one==0 && two==0 && three!=0 && four!=0){
  86. sum=three+four;
  87. printf("%d\n",sum);
  88. return 0;
  89. }
  90. else if (one!=0 && two==0 && three==0 && four!=0){
  91. if(one%4==0) cnt1= one/4;
  92. else cnt1= (one/a)+1;
  93.  
  94. sum= cnt1+four;
  95. printf("%d\n",sum);
  96. return 0;
  97. }
  98. else if (one!=0 && two!=0 && three==0 && four==0){
  99. sum1=(two*2)+one;
  100. if(sum1%4==0) cnt1=sum1/4;
  101. else cnt1= (sum1/4)+1;
  102. sum=cnt1;
  103. printf("%d\n",sum);
  104. return 0;
  105. }
  106. else if(one==0 && two!=0 && three!=0 && four==0){
  107. sum= two+three;
  108. printf("%d\n",sum);
  109. return 0;
  110. }
  111. else if (one!=0 && two==0 && three!=0 && four==0){
  112. if(one==three){
  113. cnt1=(one+three)/2;
  114. }
  115. if(one>three){
  116. rem=one-three;
  117. if(rem%4==0) cnt1=rem/4;
  118. else if (rem<4) cnt1=1;
  119. else if (rem>4) cnt1= (rem/4)+1;
  120.  
  121. }
  122. if(one<three){
  123. rem=three-one;
  124. cnt1=rem+one;
  125.  
  126. }
  127. printf("%d\n",cnt1);
  128. return 0;
  129. }
  130. else if (one==0 && two==0 && three==0 && four!=0){
  131. printf("%d\n",four);
  132. return 0;
  133. }
  134. else if (one==0 && two!=0 && three==0 && four==0){
  135. if(two%2==0) sum= two/2;
  136. else sum=(two/2)+1;
  137. printf("%d\n",sum);
  138. return 0;
  139. }
  140. else if (one!=0 && two==0 && three==0 && four==0){
  141. if(one%4==0) sum= one/4;
  142. else sum=(one/4)+1;
  143. printf("%d\n",sum);
  144. return 0;
  145. }
  146. else if (one==0 && two==0 && three!=0 && four==0){
  147. printf("%d\n",three);
  148. return 0;
  149. }
  150. else if(one!=0 && two!=0 && three!=0 && four!=0){
  151. if(one==three){
  152. cnt1=(one+three)/2;
  153. if(two%2==0) cnt2 =two/2;
  154. else cnt2=(two/2)+1;
  155. sum= cnt1+cnt2+four;
  156. printf("%d\n",sum);
  157. return 0;
  158. }
  159. if(one>three){
  160. rem=one-three;
  161. cnt1=three;
  162. if(two%2==0) cnt2 =two/2;
  163. else {
  164. sum1= (two*2)+rem;
  165. if(sum1%4==0) cnt2=sum1/4;
  166. else cnt2= (sum1/4)+1;
  167. }
  168. sum= cnt1+cnt2+four;
  169. printf("%d\n",sum);
  170. return 0;
  171. }
  172. if(one<three){
  173. rem=three-one;
  174. cnt1=rem+one;
  175. if(two%2==0) cnt2=two/2;
  176. else cnt2= (two/2)+1;
  177. sum= cnt1+cnt2+four;
  178. printf("%d\n",sum);
  179. return 0;
  180. }
  181. }
  182.  
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement