侧边栏壁纸
  • 累计撰写 192 篇文章
  • 累计创建 2 个标签
  • 累计收到 87 条评论

【题解】【上海】【观光单车】

Allen Best
2023-08-01 / 0 评论 / 0 点赞 / 40 阅读 / 456 字
温馨提示:
本文最后更新于 2023-08-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
#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;
}
0

评论区