排序 实现compare方法即可
package LanQiao.C_Web.C_1917;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
/**
* @author Huiex on 2022/3/12
*/
public class C1917 {
public static void main(String[] args) {
/** 输入*/
//输入
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
float w = scanner.nextFloat();
ArrayList<Node> list = new ArrayList<>();
for (int i = 0; i <= n-1; i++){
list.add(new Node(scanner.nextFloat(),scanner.nextFloat()));
}
//排序 重写排序
list.sort(new Comparator<Node>(){
public int compare(Node o1,Node o2){
if((o2.core - o1.core) > 0) return 1;
else if ((o2.core - o1.core) < 0) return -1;
else return 0;
}
});
//进行贪心计算
float sum = 0;
for(Node node : list){
if(w >= node.gi){
w -= node.gi;
sum += node.pi;
}else{
sum += w * node.core;
break;
}
}
System.out.printf("%.1f",sum);
}
}