NC15912. 车辆安排
描述
输入描述
第一行n
第二行n个数,表示每个队伍的人数
输出描述
输出最少车数
示例1
输入:
3 3 4 5
输出:
3
Python3 解法, 执行用时: 81ms, 内存消耗: 6884K, 提交时间: 2022-10-25 14:41:38
n=int(input()) A=list(map(int,input().split())) a=A.count(3) b=A.count(4) c=A.count(5) d=A.count(2) e=A.count(1) s=a+b+c if d>a: s+=(d-a)//2+(d-a)%2 t=b+(d-a)//2+(d-a)%2*3 else: t=b+(a-d)*2 if t<e: s+=(e-t-1)//5+1 print(s)
C++11(clang++ 3.9) 解法, 执行用时: 25ms, 内存消耗: 736K, 提交时间: 2018-05-16 15:55:46
#include<cstdio> int a[6],n,res; int main(){ int c,m; scanf("%d",&n); for(int i=0;i<n;i++)scanf("%d",&c),a[c]++; res=a[5],n-=a[5]; while(n){ res++;m=5; for(int i=4;i;i--) while(a[i]&&m>=i) n--,m-=i,a[i]--; } printf("%d",res); }