#include<stdio.h>
struct good{
int No;//编号
float weight;//重量
float value;//价值
float pw;//性价比
};
int main(){
int n;
scanf("%d",&n);
int room;
scanf("%d",&room);
struct good goods[n];
for(int i=0;i<n;i++)
{
int value=0;
int weight=0;
scanf("%d",&weight);
scanf("%d",&value) ;
goods[i].No = i;
goods[i].weight = weight;
goods[i].value = value;
goods[i].pw = (float)value / weight;
}
for(int j=0;j<n-1;j++)
{
for(int i=0;i<n-1-j;i++)
{
struct good temp;
if(goods[i].pw<goods[i+1].pw){
temp=goods[i];
goods[i]=goods[i+1];
goods[i+1]=temp;
}
}
}
int i=0;
int sum1=0;
int sum=0;
while(room>=goods[i].weight&&i<=n) {
room-=goods[i].weight;
sum+=goods[i].weight;
sum1+=goods[i].value;
i++;
}
printf("%d\n",sum);
printf("%d\n",sum1);
return 0;
}
//结构体排序
需要注意的 ①在计算除法的时候要转换成浮点数
②(float)(value/weight)
③小错误不要犯
④失之毫厘,谬之千里(qaq)