#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int t,i;
scanf("%d",&t);
int sum=1;
char str[4];
int arr[t];
for(i=0;i<t;i++)
{
scanf("%s",str);
if(str[0]=='1'&&str[2]=='4')
arr[i]=1;
else
if(str[0]=='1'&&str[2]=='2')
arr[i]=2;
else
if(str[0]=='3'&&str[2]=='4')
arr[i]=3;
}
sort(arr,arr+t);
int thalf=0,tquad=0;
for(i=t;i>=0;i--)
{
if(arr[i]==3)
sum++;
if(arr[i]==2)
thalf++;
if(arr[i]==1)
tquad++;
}
if(thalf%2==0&&thalf!=0)
{
sum=sum+(thalf/2);
thalf=0;
}
if(thalf%2!=0&&thalf!=0)
{
sum=sum+((thalf-1)/2);
thalf=1;
}
if(tquad%4==0&&tquad!=0)
{
sum=sum+(tquad/4);
tquad=0;
}
if(tquad%4!=0&&tquad!=0)
{
sum=sum+((tquad)/4);
tquad=tquad%4;
}
if((thalf==1&&tquad==2)||(thalf==1&&tquad==0)||(thalf==1&&tquad==1)||(thalf==0&&tquad==1)||(thalf==0&&tquad==3)||(thalf==0&&tquad==2))
sum=sum+1;
if(thalf==1&&tquad==3)
sum=sum+2;
printf("%d\n",sum);
return 0;
}
i have tested my code. for more than 50 testcases !! please help ??? WHERE THE HELL I AM WRONG ???