solution.md 3.6 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
# 最小花费

<p>题目描述</p><p style="margin-left:0; margin-right:0">乐乐做好了一二三等奖奖品费用预算方案之后&#xff0c;决定到市场上具体咨询一下三种奖品的具体价格&#xff0c;发现各个商家的报价还是有差别的&#xff0c;乐乐决定哪家所有奖品总金额最少就在哪家购买&#xff0c;假设每家货源是充足的。乐乐咨询了n个店家&#xff0c;几乎跑遍了整个市场&#xff0c;才得到各个商家的最低报价清单。现在请你计算出乐乐会在哪家商家购买奖品以及费用是多少。
输入</p><p style="margin-left:0; margin-right:0">共 n&#43;1 行 </p><p style="margin-left:0; margin-right:0">第一行&#xff0c;有四个整数 n,x,y,z&#xff0c;数与数之间用一个空格隔开&#xff0c;n 表示乐乐咨询的商家数&#xff0c;x,y,z 分别表示要购买一等奖奖品数量、二等奖奖品数量、三等奖奖品数量。 </p><p style="margin-left:0; margin-right:0">接下来的 n 行&#xff0c;每行都有三个数&#xff0c;数与数之间用一个空格隔开&#xff0c;第 i&#43;1 行分别表示编号为 i 的商家对一、二、三等奖奖品的报价&#xff08;单价&#xff09; 
输出</p><p style="margin-left:0; margin-right:0">共有两个整数&#xff0c;第一个数表示购买奖品的商家编号&#xff08;如果有多家总费用最少&#xff0c;输出编号最小的商家&#xff09;&#xff0c;第二个数是购买奖品的总费用。 
样例输入</p><pre class="has" style="margin-left:0; margin-right:0">
<code class="language-content">3 1 2 3
70 50 30
60 40 20
80 55 33
</code></pre><p>样例输出</p><pre class="has" style="margin-left:0; margin-right:0">
<code class="language-content">2 200</code></pre><p>提示</p><p style="margin-left:0; margin-right:0">【样例解释】</p><p style="margin-left:-0.5pt; margin-right:0">乐乐咨询了 3 个商家&#xff0c;打算购买一二三等奖奖品数量分别是 1 个、2 个、3 个&#xff0c;编号为 1 的商家一二三等奖奖品报价分别是 70、50、30 元&#xff0c;编号为 2 的商家报价分别是 60、40、20 元&#xff0c;编号为 3 的商家报价分别是 80、55、20 元&#xff0c;乐乐在编号为 2 的商家购买总费用最低&#xff0c;为200 元。</p><p style="margin-left:0; margin-right:0">【数据范围】</p><p style="margin-left:23.75pt; margin-right:0">40%数据&#xff1a;1≤n≤5000 </p><p style="margin-left:23.75pt; margin-right:0">100%数据&#xff1a;1≤n≤100000&#xff0c;1≤x,y,z≤1000&#xff0c;奖品报价都是 1000 范围以内的正整数。</p>

ToTensor's avatar
ToTensor 已提交
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
以下程序实现了这一功能,请你填补空白处的内容:

```cpp
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int n, x, y, z, i, min = 1000000, n1, n2, n3, temp, t = 0;
    cin >> n >> x >> y >> z;
    for (i = 0; i < n; i++)
    {
        temp = 0;
        cin >> n1 >> n2 >> n3;
        temp += n1 * x + n2 * y + n3 * z;
ToTensor's avatar
ToTensor 已提交
29
		__________________;
ToTensor's avatar
ToTensor 已提交
30 31 32 33 34 35
    }
    cout << t << " " << min;
    return 0;
}
```

每日一练社区's avatar
每日一练社区 已提交
36 37 38 39 40 41
## template

```cpp
#include <iostream>
#include <stdio.h>
using namespace std;
ToTensor's avatar
ToTensor 已提交
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
int main()
{
    int n, x, y, z, i, min = 1000000, n1, n2, n3, temp, t = 0;
    cin >> n >> x >> y >> z;
    for (i = 0; i < n; i++)
    {
        temp = 0;
        cin >> n1 >> n2 >> n3;
        temp += n1 * x + n2 * y + n3 * z;
        if (temp < min)
        {
            min = temp;
            t = i + 1;
        }
    }
    cout << t << " " << min;
    return 0;
每日一练社区's avatar
每日一练社区 已提交
59 60 61 62 63 64
}
```

## 答案

```cpp
ToTensor's avatar
ToTensor 已提交
65 66 67 68 69
if (temp < min)
{
	min = temp;
	t = i + 1;
}
每日一练社区's avatar
每日一练社区 已提交
70 71 72 73 74 75 76
```

## 选项

### A

```cpp
ToTensor's avatar
ToTensor 已提交
77 78 79 80 81
if (temp > min)
{
	min = temp;
	t = i + 1;
}
每日一练社区's avatar
每日一练社区 已提交
82 83 84 85 86
```

### B

```cpp
ToTensor's avatar
ToTensor 已提交
87 88 89 90 91
if (temp < min)
{
	min = temp;
	t = i - 1;
}
每日一练社区's avatar
每日一练社区 已提交
92 93 94 95 96
```

### C

```cpp
ToTensor's avatar
ToTensor 已提交
97 98 99 100 101
if (temp > min)
{
	min = temp;
	t = i - 1;
}
每日一练社区's avatar
每日一练社区 已提交
102
```