小美明天要去春游了。她非常喜欢吃巧克力希望能够带尽可能多的巧克力在春游的路上吃。她现在有n个巧克力很巧的是她所有的巧克力都是厚度一样的正方形的巧克力板这n个巧克力板的边长分别为a1a2an。因为都是厚度一致的正方形巧克力板我们认为第 i 个巧克力的重量为。小美现在准备挑选一个合适大小的包来装尽可能多的巧克力板她十分需要你的帮助来在明天之前准备完成请你帮帮她。输入描述第一行两个整数n和m表示小美的巧
import java.util.*;
public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); long[] a = new long[n]; for(int i=0; i<n; i++){ a[i] = sc.nextLong(); } Arrays.sort(a); long[] sum = new long[n]; sum[0] = a[0]; for(int i=1; i<n; i++){ sum[i] = sum[i-1]+a[i]; } for(int i=0; i<m; i++){ long q = sc.nextLong(); int l=0, r=n-1; while(l<r){ int mid = (l+r+1)/2; if(sum[mid]<=q) l=mid; else r=mid-1; } if(sum[l]<=q) System.out.println(l+1); else System.out.println(l); } }
原文地址: https://www.cveoy.top/t/topic/hcap 著作权归作者所有。请勿转载和采集!