#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题题解
最新推荐文章于 2020-08-26 00:02:39 发布