列表

详情


OR138. 买面包

描述

一天,小明去超市购买面包。在超市里面,他一共发现了多种类型面包,它随手拿了一些面包放进购物篮里。在结账之前,他很担心自己的钱不够,于是他想计算一下购物篮中面包的总价格。小明很清楚每种面包的价格和他购买每种面包的个数,但是他计算能力不足,你可以帮他计算吗?

输入描述

第一行一个整数n,表示超市中面包的总类型数,1≤n≤100;

第二行n个整数,第i个数表示第i种面包的价格ai,1≤ai≤100;

第三行一个整数m,1≤m≤100

接下来m行每一行有两个整数x,y,表示第x种面包购买了y个,保证1≤x≤n,1≤y≤100

输出描述

输出一个整数,表示购买面包总价格。

示例1

输入:

52
73 41 72 19 94 18 45 94 75 98 44 69 21 22 68 16 20 82 71 16 89 59 80 62 70 79 36 33 62 27 22 53 83 85 66 50 7 51 72 53 87 92 58 57 6 78 43 60 41 40 56 13 
61
24 70
13 45
39 10
41 30
52 70
31 21
50 41
14 35
30 12
47 79
1 18
38 15
10 77
49 28
38 22
35 56
19 83
28 96
22 50
8 7
17 69
33 40
41 32
25 39
16 47
12 79
25 24
10 46
42 75
39 5
6 93
35 30
9 74
21 76
21 93
47 65
18 17
8 38
4 48
52 34
31 39
11 27
36 50
45 54
46 30
9 45
27 60
9 4
4 18
45 75
14 48
1 45
35 64
24 26
45 1
30 40
8 10
49 8
30 35
52 24
38 15

输出:

135993

原站题解

C++ 解法, 执行用时: 1ms, 内存消耗: 376KB, 提交时间: 2020-07-07

/**
 * 运行时间:4ms
 * 占用内存:504k
*/
#include <cstdio>
#include <iostream>
#include <utility>
#include <vector>

using namespace std;

class Solution {
private:
    unsigned out;

public:
    Solution(const vector<int>& prices, const vector<pair<int, int>>& goods);
    ~Solution();
    friend ostream& operator<<(ostream& os, const Solution& s);
};

Solution::Solution(const vector<int>& prices, const vector<pair<int, int>>& goods)
    : out(0)
{
    for (const pair<int, int>& i : goods) {
        out += i.second * prices[i.first];
    }
}

Solution::~Solution()
{
}

ostream& operator<<(ostream& os, const Solution& s)
{
    // os << s.out;
    printf("%d", s.out);
    return os;
}

int main(int argc, char* argv[])
{
    int n;
    // cin >> n;
    scanf("%d", &n);
    vector<int> prices(n + 1, 0);
    for (size_t i = 1; i <= n; i++) {
        // cin >> prices[i];
        scanf("%d", &prices[i]);
    }

    int m;
    // cin >> m;
    scanf("%d", &m);
    vector<pair<int, int>> goods(m, make_pair(0, 0));
    for (size_t i = 0; i < m; i++) {
        // cin >> goods[i].first >> goods[i].second;
        scanf("%d %d", &goods[i].first, &goods[i].second);
    }

    Solution s(prices, goods);

    cout << s << endl;
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 232KB, 提交时间: 2019-01-22

#include<stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    int ai[n];
    for(int i=0;i<n;i++)
    {
        scanf("%d",&ai[i]);
    }
    int k;
    scanf("%d",&k);
    int sum =0;
    for(int j=0;j<k;j++)
 //   while(k--)
    {
       int a1,a2;
       scanf("%d%d",&a1,&a2);
       sum = sum+ai[a1-1]*a2;
    }
    printf("%d",sum);
    return 0;
}

上一题