求最多可以派出多少支团队

标题:求最多可以派出多少支团队 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或2人组成,且1个人只能参加1个团队,请计算出最多可以派出多少支符合要求的团队

import java.io.*;
import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int personCnt = sc.nextInt();
        int[] powers = new int[personCnt];
        for (int i = 0; i < personCnt; i++) {
            powers[i] = sc.nextInt();
        }
        int powerReq = sc.nextInt();
        Arrays.sort(powers);
        int i = 0;
        int j = powers.length - 1;
        int count = 0;
        while(i < j) {
            if (powers[j] >= powerReq) {
                count++;
                j--;
            } else if (powers[i] + powers[j] >= powerReq) {
                count++;
                i++;
                j--;
            } else {
                i++;
            }
        }
        if (powers[j] >= powerReq) {
            count++;
        }
        System.out.println(count);
    }
}


全部评论

相关推荐

这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务