申请自己的网站,杭州app开发公司哪家好,做网站需要合同吗,做一个赚钱的网站好题目描述
有 nn 名学生骑双人自行车旅游#xff0c;每辆双人车最多载两人#xff0c;也可以只载一人#xff0c;载两人时#xff0c;乘客的体重之和不能超过一个给定的上限 tt。
已知学生的体重分别为 a1,a2,…,ana1,a2,…,an。请如何安排才能让所有学生骑上车且使…题目描述
有 nn 名学生骑双人自行车旅游每辆双人车最多载两人也可以只载一人载两人时乘客的体重之和不能超过一个给定的上限 tt。
已知学生的体重分别为 a1,a2,…,ana1,a2,…,an。请如何安排才能让所有学生骑上车且使用的车辆达到最少。
输入格式
第一行两个整数nn 与 tt第二行nn 个整数 a1,a2,…,ana1,a2,…,an
输出格式
单个整数表示最少车辆数。
数据范围
对于 30%30% 的数据1≤n≤101≤n≤10对于 60%60% 的数据1≤n≤1,0001≤n≤1,000对于 100%100% 的数据1≤n≤100,0001≤n≤100,0001≤ai≤t≤1,000,0001≤ai≤t≤1,000,000
样例数据
输入:
7 50 15 41 32 42 27 25 19
输出:
5
详见代码
#include bits/stdc.h
using namespace std;
int a[100005];
int ans 0;
int n;
int t;
int main()
{scanf(%d%d, n, t);for (int i 1; i n; i){scanf(%d, a[i]);}sort(a 1, a n 1);int left 1;int right n;while (left right) {if (a[left] a[right] t) {ans;left;right--;} else{ans;right--;}}if (right left) ans;cout ans;return 0;
}