🍑 算法题解专栏
🍑 答疑
输入
3
10000 10000 10000
20000 50000 20000
30000 20000 30000
输出
280000
🙈 推一下公式
👨🏫 代码里 x+y 才是总时间
import java.util.Arrays;
import java.util.Scanner;
public class Main
{
static class Node
{
int x;//存从进门到发信息的时间
int y;//存后边收拾东西离开的时间
public Node(int x, int y)
{
super();
this.x = x;
this.y = y;
}
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Node[] arr = new Node[n];
for (int i = 0; i < n; i++)
{
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
arr[i] = new Node(a + b, c);
}
// 按照总时间升序排序
Arrays.sort(arr, (o1, o2) -> o1.x + o1.y - o2.x - o2.y);
long ans = 0;
for (int i = 0; i < n; i++)
{
ans += arr[i].x;
//顺便把等待前边同学的时间也加上
for (int j = i - 1; j >= 0; j--)
ans += arr[j].x + arr[j].y;
}
System.out.println(ans);
}
}