#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> using namespace std; const int maxn=1e5+10; int n; int a[maxn]; int main() { scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } if(n<2){ cout<<1<<endl; }else{ int k1=0; int k2=0; int k3=0; int k4=0; int k5=0; for(int i=0;i<n;i++){ if(a[i]==1)k1++; if(a[i]==2)k2++; if(a[i]==3)k3++; if(a[i]==4)k4++; if(a[i]==5)k5++; } //cout<<"1:"<<k1<<endl; int ans=k5; if(k4>0){ ans+=k4; if(k1>0){ k1=k1-k4; } } //cout<<"2:"<<k1<<endl; if(k3>0){ ans+=k3; int t=k2; k2=k2-k3; if(k2<0){ k1=k1-(k3-t)*2; } } //cout<<"3:"<<k1<<endl; if(k2>0){ ans+=(k2/2); int p=k2%2; k1=k1-(k2/2); if(p>0){ if(k1>0){ k1=k1-3; ans+=1; } else ans+=1; } } //cout<<"4:"<<k1<<endl; if(k1>0){ if(k1%5==0){ ans+=(k1/5); }else ans+=(k1/5+1); } cout<<ans<<endl; } }要注意2和1的处理这个比较易错。努力写代码。
Wannafly挑战赛15B题题解
猜你喜欢
转载自blog.csdn.net/ab1605014317/article/details/80286924
今日推荐
周排行