请问这道c++题怎么做
你们家是个藏私房钱的高手之家:每人都会在自己的每只鞋子里藏私房钱。你家共有m个人,每人脚的尺码各不相同,藏钱多少也有不同。现在有n双鞋子,请计算你家鞋子里共有多少私房钱。...
你们家是个藏私房钱的高手之家:每人都会在自己的每只鞋子里藏私房钱。你家共有 m 个
人,每人脚的尺码各不相同,藏钱多少也有不同。现在有 n 双鞋子,请计算你家鞋子里共
有多少私房钱。
输入第一行为正整数 m 和 n,第二行为 m 个正整数代表每人的尺码(从 30 到 50 之间),
第三行为 m 个正整数代表每人自己的每只鞋子里藏几元,第三行是 n 个正整数代表 n 双鞋
子的尺码。m<=10,n<=100,其他输入不超过 1000。输出一个正整数。
输入样例:
2 5
36 40
10 100
36 36 40 36 40
输出样例:
460
说明:36 码鞋子共 3 双,每双有两只,每只藏 10 元,共 60 元。同理,40 码鞋子藏 400
元。 展开
人,每人脚的尺码各不相同,藏钱多少也有不同。现在有 n 双鞋子,请计算你家鞋子里共
有多少私房钱。
输入第一行为正整数 m 和 n,第二行为 m 个正整数代表每人的尺码(从 30 到 50 之间),
第三行为 m 个正整数代表每人自己的每只鞋子里藏几元,第三行是 n 个正整数代表 n 双鞋
子的尺码。m<=10,n<=100,其他输入不超过 1000。输出一个正整数。
输入样例:
2 5
36 40
10 100
36 36 40 36 40
输出样例:
460
说明:36 码鞋子共 3 双,每双有两只,每只藏 10 元,共 60 元。同理,40 码鞋子藏 400
元。 展开
1个回答
展开全部
#include <iostream>
using namespace std;
int main() {
int m,n,x;
cin>>m>>n;
int a[m],money[m],temp[m];
int b[51]= {0};
for(int i=0; i<m; i++) cin>>a[i];//将不同尺码记录在 数组 a 中
for(int i=0; i<m; i++) cin>>money[a[i]];//将不同价格记录在money中
for(int i=0; i<n; i++) { //数量
cin>>x;
b[x]++;
}
int sum=0;//总价格
for(int i=30; i<=50; i++)
if(b[i]>0) sum+=b[i]*money[i]*2;
cout<<sum;
return 0;
}
// 看在我大半夜辛苦打字 求采纳
/*
因为不知道输入的m是否是从小到大的顺序 所以用了上面这个方法
具体可以看下面的测试点二 就懂了 鞋子码数可能不是 36 40这样按顺序的
可能是这样 :40 36 38 这样无顺序
*/
/*
输入样例:
2 5
36 40
10 100
36 36 40 36 40
输出样例:
460
*/
/* 第二个测试点 //无顺序
3 6
40 36 38
1 2 4
38 40 36 36 40 38 //每个码数两双鞋
输出:
2*2*(7=28
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询