func_code_string: #include <bits/stdc++.h>   using namespace std;   int sum[5];   int n;   int main() {     cin >> n;     int res = 0;     for (int i = 1; i <= n; ++i) {       int t;       scanf( %d , &t);       if (t) sum[t]++;     }     int tmp = min(sum[1], sum[2]);     sum[3] += tmp;     res += tmp;     sum[2] -= tmp;     sum[1] -= tmp;     if (sum[1]) {       int t = sum[1] / 3;       res += t * 2;       sum[1] -= t * 3;       sum[3] += t;       if (sum[1]) {         if (sum[3] >= sum[1])           res += sum[1];         else {           if (sum[1] == 2) {             if (sum[4])               res += 2;             else {               printf( -1 n );               return 0;             }           } else {             if (sum[3])               res += 1;             else if (sum[4] >= 2)               res += 2;             else {               printf( -1 n );               return 0;             }           }         }       }     } else if (sum[2]) {       int t = sum[2] / 3;       res += t * 2;       sum[2] -= t * 3;       sum[3] += t * 2;       if (sum[2]) {         if (sum[4] >= sum[2])           res += sum[2];         else {           if (sum[2] == 2)             res += 2;           else {             if (sum[3] >= 2)               res += 2;             else {               printf( -1 n );               return 0;             }           }         }       }     }     cout << res << endl;     return 0;   }   