这我为什么会WA 来个大佬指出一下问题所在
查看原帖
这我为什么会WA 来个大佬指出一下问题所在
981981
little_whitezzz楼主2023/12/14 23:19
import java.io.BufferedInputStream;
import java.util.*;

class coin{
    int m;
    int w;
    double rate ;
    public coin(int m,int w){
        this.m = m;
        this.w = w;
        this.rate = w / m;
    }
}
public class P2240 {
    static int N,V;
    public static void main(String[] args) {
        Scanner sc = new Scanner(new BufferedInputStream(System.in));
        N = sc.nextInt();
        V = sc.nextInt();
        List<coin> list = new ArrayList<>();
        for(int i = 1;i <= N;i ++){
            int m = sc.nextInt();
            int w = sc.nextInt();
            list.add(new coin(m,w));
        }
        Comparator<coin> comparator = new Comparator<coin>() {
            @Override
            public int compare(coin o1, coin o2) {
                return (int) (o2.rate - o1.rate);
            }
        };
        double ans = 0;
        Collections.sort(list, comparator);
        for(int i = 0;i < list.size();i ++){
            if(V == 0)
                break;
            if(V >= list.get(i).m){
                V -= list.get(i).m;
                ans += list.get(i).w;
            }
            if(V < list.get(i).m){
                ans += list.get(i).rate * V;
                V = 0;
            }
        }
        System.out.printf("%.2f",ans);
    }
}
2023/12/14 23:19
加载中...