题目描述
有n个队伍,每个队伍的人数小于等于5,每辆车最多坐5个人,要求一个队伍的人都在一辆车上,求最少的车数
输入描述:
第一行n 第二行n个数,表示每个队伍的人数
输出描述:
输出最少车数
示例1
输入
3 3 4 5
输出
3
备注:
n≤1e5
每个数小于等于5
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();//队伍个数
int[] a=new int[6];
for(int i=0;i<n;i++)
{
int b=sc.nextInt();
a[b]++;//人数为1,2,3,4,5的队伍的个数
}
int ans=0;
while(n>0)
{
ans++;//车辆数加一
int k=5;//车剩余的座位数
for(int i=5;i>=0;i--)
{
while(k>=i&&a[i]!=0)//座位数大于队伍人数,且队伍不为0
{
k-=i;//座位数减去队伍人数
a[i]--;//固定数量的队伍个数减一
n--;//队伍个数减一
}
}
}
System.out.println(ans);
}
}