```java
import java.util.*;
class objects implements Comparable<objects>{
int m;
int v;
double d;
objects(int m,int v,double d){
this.m = m;
this.v = v;
this.d = d;
}
@Override
public int compareTo(objects o) {
return (int) ((int) o.d-this.d);
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int t = sc.nextInt();
List<objects> list = new ArrayList();
for (int i = 0; i < n; i++) {
int m = (int) (sc.nextInt());
int v = (int) (sc.nextInt());
list.add(new objects(m,v,(v*1000000*1.0)/(m*1000000)));
}
Collections.sort(list);
int bag = 0;
double value = 0;
int i =0;
while(bag!=t){
if(bag+list.get(i).m<t){
bag+=list.get(i).m;
value+=list.get(i).v;
}
else if (bag+list.get(i).m>=t){
value+=(list.get(i).d*(t-bag));
bag=t;
}
i++;
}
System.out.println(String.format("%.2f", value));
}
}
不知道问题在哪里,是精度问题吗?