题目描述
旅行社计划组织一个独木舟旅行,租用的独木舟都是一样的,最多乘两人,而且载重有一个限度。
现在要节约费用,所以要尽可能地租用最少的舟。
本题的任务是读入独木舟的载重量,参加旅行的人数以及每个人的体重,计算出所需要的独木舟数目。
输入格式
第 1 行是 w(80≤w≤200),表示每条独木舟最大的载重量。
第 2 行是正整数 n(1≤n≤30000),表示参加旅行的人数。
接下来的 n 行,每行是一个正整数 ti(5≤ti≤w),表示每个人的重量。
输出格式
输出一行一个数,表示最少的独木舟数目。
样例输入
100 9 90 20 20 30 50 60 70 80 90
样例输出
6
问题提示
源代码
#include <bits/stdc++.h>
using namespace std;
int w,n,a[30010],cnt=0;
int main(){
cin>>w>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
int x=1,y=n;
while(x<=y){
if(a[x]+a[y]<=w){
cnt++;
x++;
y--;
}else{
cnt++;
y--;
}
}
cout<<cnt;
return 0;
}