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

标题:求最多可以派出多少支团队 | 时间限制: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);
    }
}


全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务