VK Cup 2012 Qualification Round 1 B. Taxi

来源:互联网 发布:java如何定义方法 编辑:程序博客网 时间:2024/04/29 18:55

n组人坐车,每组若干人,每个车不能超过4人,要求一组人必须坐在一起,不同组的也可以坐在一起,问最少需要多少辆车

贪心啦微笑值得好好考虑一下


#include<stdio.h>#include<string.h> int main(){int n,a[100100],i,j,ans=0,b[10],x,y;scanf("%d",&n);memset(b,0,sizeof(b));for(i=1;i<=n;i++){scanf("%d",&a[i]);b[a[i]]++;    }ans+=(b[4]+b[3]);if(b[2]>1){if(b[2]%2==0) ans+=b[2]/2;elseans+=(b[2]/2+1);}else if(b[2]==1)  ans+=1;    x=b[2]%2;    b[1]-=(x*2+b[3]);       if(b[1]>0) {if(b[1]<=4) ans+=1;else if(b[1]%4==0) ans+=b[1]/4;    else  ans+=(b[1]/4+1);}    printf("%d\n",ans);} 


0 0
原创粉丝点击