来个爱玩原神的佬教教我这题怎么优化空间
查看原帖
来个爱玩原神的佬教教我这题怎么优化空间
981981
little_whitezzz楼主2023/12/30 00:51
import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    static int N = 1000010;
    static long[] H = new long[N];
    static int n;
    static long getNum(int mid){
        long res = 0;
        for(int i = 0;i < n;i ++){
            if(H[i] - mid <= 0)
                res += 0;
            else
                res += H[i] - mid;
        }
        return res;
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(new BufferedInputStream(System.in));
        n = sc.nextInt();
        int M = sc.nextInt();
        for(int i = 0;i < n;i ++)
            H[i] = sc.nextLong();
        Arrays.sort(H,0,n);
        long r = H[n - 1];
        long l = 0;
        while(l < r){
            long mid = (l + r + 1) / 2;
            if(getNum((int) mid) >= M) l = mid;
            else r = mid - 1;
        }
        System.out.println(r);
    }
}
2023/12/30 00:51
加载中...