您的位置:首页 > 房产 > 建筑 > 乘船过河(ship)

乘船过河(ship)

2024/10/5 13:58:04 来源:https://blog.csdn.net/jht0105/article/details/139509858  浏览:    关键词:乘船过河(ship)

合肥市第33届信息学竞赛(2016年)

题目描述 Description

卡卡西和小朋友们要乘船过河了,港口有很多条船可以租到,并且之间没有区别,每条船的出租费用也是一样的。但是一条船最多只能乘坐两个人,且乘客的总重量不能超过船的最大承载量。我们要找出可以安置所有小朋友的最小船数以降低总的租船费用,卡卡西很快的写出了一个程序,读入船的最大承载量、旅客数目和每位旅客的重量,计算出要安置所有同学必须的最少的船的数目。

输入描述 Input Description

输入数据有两行。第一行两个整数w和n,用空格分隔,分别表示一条船的最大承载量和人数;第二行中每个数据是每个人的重量,也是整数,数据间用空格分隔。

输出描述 Output Description

最小船数。

样例输入 Sample Input

【输入样例一】 85 6 5 84 85 80 84 83 【输入样例二】 100 5 50 50 90 40 60

样例输出 Sample Output

【输出样例一】 5 【输出样例 二】 3

数据范围及提示 Data Size & Hint

3≤w≤200,3≤n≤300 每位乘客的重量都不大于船的承载量。

#include<bits/stdc++.h>
using namespace std;
int a[310],s=0,w,n;
int main(){cin>>w>>n;for(int i=1;i<=n;i++){cin>>a[i];}sort(a+1,a+n+1);for(int i=1,j=n;i<=j;){if(a[i]+a[j]<=w){i++,j--;}else{j--;}s++;}cout<<s;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com