贪心——车辆安排
题目描述
有n个队伍,每个队伍的人数小于等于5,每辆车最多坐5个人,要求一个队伍的人都在一辆车上,求最少的车数。
输入描述:
第一行n
第二行n个数,表示每个队伍的人数
输出描述:
输出最少车数
示例
输入
3
3 4 5
输出
3
备注:
n<=1e5
每个数小于等于5
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,a[100001]={0},x;
cin>>n;
for(int i=0;i<n;i++){
cin>>x;
a[x]++;
}
int sum=0;
while(n){
int now=5;
for(int i=5;i>=1;i--){
while(now>=i&&a[i]){
now-=i;
n--;
a[i]--;
}
}
sum++;
}
cout<<sum<<endl;
return 0;
}