fork download
  1. #include <iostream>
  2. #include<queue>
  3. #include <algorithm>
  4. #include <map>
  5. #include<unordered_map>
  6. #include <set>
  7. #include <fstream>
  8. #include <vector>
  9. #include <math.h>
  10. #include <iomanip>
  11. #include <string>
  12. #include <cstring>
  13. using namespace std;
  14.  
  15. #define ll long long
  16.  
  17. ll mod = 1e9+7;
  18. const int MaxN = 1e5+5;
  19. int MOD = 998244353;
  20. int bit[200000];
  21. ll dem=0;
  22.  
  23. int main() {
  24. // freopen(".INP", "r", stdin);
  25. //freopen(".OUT", "w", stdout);
  26.  
  27.  
  28.  
  29.  
  30.  
  31. int n;
  32. cin >> n;
  33. int x;
  34. vector<ll> a;
  35. map<int, int> mp;
  36. for(int i=0;i<n;i++){
  37. cin >> x;
  38. if(x==4){
  39. dem++;
  40. }
  41. else{
  42. mp[x]++;
  43. a.push_back(x);
  44. }
  45. }
  46. sort(a.begin(),a.end());
  47. int l=0,r=a.size()-1;
  48. while(l<r){
  49. if(a[l]+a[r]>4){
  50. r--;
  51. dem++;
  52. }
  53. else if(a[l]+a[r]<4){
  54. l++;
  55. dem++;
  56. }
  57. else{
  58. dem++;
  59. l++;
  60. r--;
  61. }
  62. }
  63. cout << dem;
  64. return 0;
  65. }
Success #stdin #stdout 0s 5312KB
stdin
6
4 1 2 3 2 3
stdout
4