可达鸭思维题库组团旅游

组团旅游

时间限制:1秒        内存限制:128M

题目描述
KDY学校组织了一次郊外旅游,去参观一下祖国的大好河山!
老师为了方便管理,给互相非常熟悉的同学组成了旅游小队,每个小队的同学数量不超过4个人。所有一个小组的同学都要乘坐同一辆车,但是同一个车不一定只有一个小组的成员。每辆车都最多可以乘坐4名同学。老师们单独乘坐一辆车一起前去。
输入描述
第一行输入一个正整数N,表示N个小组。N不超过100000
第二行输入每个小组成员数量。
输出描述
输出孩子们总共需要多少车辆
输入样例

5
1 2 4 3 3

输出样例

4

此题思路如下:

1.定义n和数组

2.sort排序数组

3.双指针

OK呀,上AC代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,a[N];
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d",a+i);
    }
    int cnt=0,i=1,j=n;
    sort(a+1,a+n+1);
    while(i<=j){
        if(a[j]==4){
            cnt++;
            j--;
        }
        else if(a[i]+a[j]==4){
            cnt++;
            i++,j--;
        }
        else if(a[i]+a[j]<4){
            a[j]+=a[i];
            i++;
        }
        else{
            j--;
            cnt++;
        }
    }
    printf("%d",cnt);
    return 0;
}

(代码仅供参考,未经作者同意,禁止转载!)

调试:

提交:

 

OK呀,我们下期再见,拜拜! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值