题目
样例输入:
5 36
99 87
68 36
79 43
75 94
7 35
代码:
import java.util.Scanner;
public class 快乐司机 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int w=sc.nextInt();
int[] gi=new int[n+1];
int[] pi=new int[n+1];
double[] ave=new double[n+1];
for (int i = 0; i < n; i++) {
gi[i]=sc.nextInt();
pi[i]=sc.nextInt();
ave[i]=(double)pi[i]/(double)gi[i];
}
double sum_gi=0.0;
double sum_pi=0.0;
int k=0;
for (int i = 0; i < n; i++) {
//找最大的ave
double max=0;
for (int j = 0; j < n; j++) {
if(ave[j]>=max) {
max=ave[j];
k=j;
}
}
//加入
if(sum_gi+gi[k]<=w) {
sum_gi+=gi[k];
sum_pi+=pi[k];
}else {
sum_pi+=(w-sum_gi)*ave[k];
break;
}
ave[k]=-1;
}
System.out.println(String.format("%.1f", sum_pi));
}
}