1070 Mooncake (25 分)
思路
秒杀,不解释
代码
#include<bits/stdc++.h>
using namespace std;
struct stu{
double price;
double num;
double one;
}stud[1005];
bool cmp(stu a, stu b)
{
return a.one>b.one;
}
int main()
{
int N,M;
scanf("%d%d",&N,&M);
for(int i =0;i<N;i++)
scanf("%lf",&stud[i].num);
for(int i =0;i<N;i++)
{
scanf("%lf",&stud[i].price);
stud[i].one= stud[i].price/stud[i].num;
}
sort(stud,stud+N,cmp);
double sum = 0;
for(int i =0;i<N;i++)
{
//cout<<stud[i].num<<endl;
if(M>stud[i].num)
{
sum+=stud[i].price;
M-=stud[i].num;
}
else
{
sum+=(M/stud[i].num)*stud[i].price;
break;
}
}
printf("%.2f",sum);
}