同题目
#include<bits/stdc++.h>
using namespace std;
struct fq{ //定义一个结构体,K是皮肤数,c是价格
int k;
int c;
};
bool cmp(fq a,fq b){
return a.c<b.c;
}
int main(){
int n,m,w = 1,l = 0,t = 0;
cin>>n>>m;
fq a[n];
for(int i = 0;i<n;i++){
cin>>a[i].k; //输入皮肤数量
}
for(int i = 0;i<n;i++){
cin>>a[i].c;
} //输入价格
sort(a,a+n+1,cmp); //从便宜到贵的排序
for(int i = 0;i<n;i++){
if(w>=m){ //如果方案数达到m就退出循环
break;
}
for(int r = 0;r<a[i].k;r++){
t++; //该英雄购买皮肤数量增加
l+=a[i].c; //总价格增加
}
w*=t;
t = 0; //归零
}
cout<<l; //常规输出
return 0;
}
求大佬帮帮我