OR138. 买面包
描述
一天,小明去超市购买面包。在超市里面,他一共发现了多种类型面包,它随手拿了一些面包放进购物篮里。在结账之前,他很担心自己的钱不够,于是他想计算一下购物篮中面包的总价格。小明很清楚每种面包的价格和他购买每种面包的个数,但是他计算能力不足,你可以帮他计算吗?
输入描述
第一行一个整数n,表示超市中面包的总类型数,1≤n≤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; }