题目描述
有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); } }