以下是我的AC代码:
#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
double num[101];
double num_1[101];
double num_2[101];
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>num[i];
cin>>num_1[i];
num_2[i]=num_1[i]/num[i];
}
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(num_2[i]<=num_2[j]){
double tmp=num_2[i];
num_2[i]=num_2[j];
num_2[j]=tmp;
tmp=num_1[i];
num_1[i]=num_1[j];
num_1[j]=tmp;
tmp=num[i];
num[i]=num[j];
num[j]=tmp;
}
// printf("%lf %lf %lf\n",num[i],num_1[i],num_2[i]);
}
}
// cout<<endl<<endl<<endl;
for(int i=0;i<n;i++){
// printf("%lf %lf %lf\n",num[i],num_1[i],num_2[i]);
}
double sum=0.0;
int flag=0;
for(int i=0;i<n;i++){
if(m>=num[i]){
m=m-num[i];
sum+=num_1[i];
//cout<<sum<<endl;
}
else if(m<num[i]){
sum+=(double)(m*num_1[i]/num[i]);
flag=1;
}
// cout<<m<<" "<<sum<<" "<<endl;
if(flag==1) break;
}
printf("%.2lf",sum);
return 0;
}