![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/79197969c7f1b3eec065dfa1b2241711.png)
Notice:
1.c++中的结构体:
struct Mooncake
{
float num,price,unitp;
int a;
};
Mooncake b,m1[10];
vector<Mooncake> m2(10);
末尾有分号结尾。
2.注意输入数据的类型.
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct Mooncake
{
float num,price,unitp;
};
bool cmp(Mooncake a,Mooncake b){
return a.unitp > b.unitp;
}
int main(){
int N,need;
cin >> N >> need;
Mooncake m[N];
for(int i = 0;i < N;i++){
cin >> m[i].num;
}
for(int i = 0;i < N;i++){
cin >> m[i].price;
m[i].unitp = m[i].price / m[i].num;
}
sort(m,m + N,cmp);
float earn = 0.0;
for(int i = 0;i < N;i++){
if( need < m[i].num){
earn += m[i].unitp * need;
break;
}else{
earn += m[i].price;
need -= m[i].num;
}
}
printf("%.2f",earn);
return 0;
}