列表

详情


NC15912. 车辆安排

描述

有n个队伍,每个队伍的人数小于等于5,每辆车最多坐5个人,要求一个队伍的人都在一辆车上,求最少的车数

输入描述

第一行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);
}

上一题