https://codeforces.com/problemset/problem/158/B
1-3 2-2 2-1-1
尽量多配对
#include<bits/stdc++.h>
using namespace std;
int a[10],n,x;
int main(void)
{
cin>>n;
for(int i=0;i<n;i++) cin>>x,a[x]++;
int ans=a[4];
while(a[3]&&a[1]) ans++,a[3]--,a[1]--;
if(a[3]>0) ans+=a[3];
while(a[2]>0&&a[1]>0) ans++,a[2]--,a[1]-=2;
if(a[2]>0)
{
ans+=a[2]/2;
if(a[2]%2) ans++;
}
if(a[1]>0)
{
ans+=a[1]/4;
if(a[1]>0&&a[1]%4) ans++;
}
cout<<ans<<endl;
return 0;
}