codeforces 158B - Taxi

#include<stdio.h>
int main()
{
    int t,n,a[5]={0},i;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&t);
        a[t]++;
    }
    t=a[4];
    while(a[3])
    {
        if(a[1]) {
            a[1]--;a[3]--;t++;
        }
        else{
            a[3]--;t++;
        }
    } 
    if(a[2]%2==0) t+=(a[2]/2);
    else if(a[1]>1) {t+=(a[2]/2+1);a[1]-=2;}
    else if(a[1]==1) {t+=(a[2]/2+1);a[1]-=1;}
    else {t+=(a[2]/2+1);}
    if(a[1]%4==0) t+=(a[1]/4);
    else t+=(a[1]/4+1);
    printf("%d\n",t);
    return 0;
} 

 

posted @ 2013-05-23 00:00  piaomiao1314  阅读(206)  评论(0编辑  收藏  举报