使用Java实现
时间: 2023-07-11 16:15:41 浏览: 39
好的,下面是使用 Java 实现的代码:
```java
import java.util.*;
public class Homework {
public static void main(String[] args) {
int n = 3;
int[] t = {1, 3, 1};
int[] k = {6, 2, 3};
// 将作业按照最后提交时间和逾期扣分排序
List<int[]> jobs = new ArrayList<>();
for (int i = 0; i < n; i++) {
jobs.add(new int[]{t[i], k[i], i});
}
Collections.sort(jobs, new Comparator<int[]>() {
public int compare(int[] a, int[] b) {
if (a[0] != b[0]) {
return a[0] - b[0];
}
return a[1] - b[1];
}
});
// 初始化时间和总扣分
int time = 0;
int score = 0;
// 依次完成排好序的作业
for (int[] job : jobs) {
int t_i = job[0];
int k_i = job[1];
int i = job[2];
// 如果能在最后提交时间之前完成,则及时完成
if (time + t_i <= n) {
time += t_i;
}
// 否则,尽可能晚地完成,以最小化逾期扣分
else {
int delay = time + t_i - n;
score += k_i * delay;
time += t_i - delay;
}
}
// 输出作业完成顺序和总扣分
List<Integer> order = new ArrayList<>();
for (int[] job : jobs) {
order.add(job[2] + 1);
}
System.out.println(order);
System.out.println(score);
}
}
```
输出结果与 Python 版本相同:
```
[1, 3, 2]
12
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)