fork download
  1. #include <array>
  2. #include <algorithm>
  3. #include <iostream>
  4.  
  5. int main()
  6. {
  7. unsigned int inputs = 0;
  8. std::array<unsigned int, 5> values; // taxis, group 1, group 2, group 3, group 4
  9. values.fill(0);
  10. std::cin >> inputs;
  11. for (unsigned int i = 0; i < inputs; ++i)
  12. {
  13. unsigned int group_size = 0;
  14. std::cin >> group_size;
  15. values[group_size]++;
  16. }
  17.  
  18. values[0] = values[4];
  19. values[0] += (values[3] * 3 + values[1]) / 4;
  20. values[1] = (values[3] * 3 + values[1]) % 4;
  21. values[0] += (values[2] * 2 + values[1]) / 4;
  22. values[1] = (values[2] * 2 + values[1]) % 4;
  23. values[0] += (values[1] / 4) + (values[1] % 4 ? 1 : 0);
  24.  
  25. std::cout << values[0] << std::endl;
  26. return 0;
  27. }
Success #stdin #stdout 0s 3344KB
stdin
2 2 1
stdout
1