方案一:用例通过率90%以上
1 package exam;
2
3 import java.util.Scanner;
4
5 /**
6 * 功能描述
7 *
8 * @author ASUS
9 * @version 1.0
10 * @Date 2022/8/7
11 */
12 public class Main01 {
13 public static void main(String[] args) {
14 Scanner scanner = new Scanner(System.in);
15 // 一次最多执行个数
16 Integer max = Integer.parseInt(scanner.nextLine());
17 // 任务数组长度
18 String length = scanner.nextLine();
19 // 任务数组
20 String s = scanner.nextLine();
21 String[] split = s.split(" ");
22 // 最少耗时
23 int time = 0;
24 int task = 0;
25 // 当前任务累计数
26 for (int i = 0; i < split.length; i++) {
27 Integer s1 = Integer.parseInt(split[i]);
28 if (s1 >= max) {
29 task = task + s1 - max;
30 time++;
31 }
32
33 if (s1 < max) {
34 int temp = task + s1 - max;
35 task = temp >= 0 ? temp : 0;
36 time++;
37 }
38 }
39 // 还有未执行的任务需要再花时间执行
40 int i = 0;
41 if (task > 0) {
42 if (task % max > 0) {
43 i = task / max + 1;
44 } else {
45 i = task / max;
46 }
47 }
48 System.out.println(Math.addExact(time, i));
49 }
50 }