华为od机试真题-分披萨
时间: 2024-02-03 09:00:34 浏览: 195
分披萨
题目描述
在给定 m个人的情况下,有 n块比萨。每块比萨都有一个分数。我们希望将比萨分配给每个人,使得每个人得分尽可能多。分数可以为 0。
例如,在给定 3 个人和 3 块比萨的情况下,比萨的得分分别为 5, 4, 7,我们可以将比萨分配为: (5)、(4)、(7),以便每个人分别得到 5, 4, 7 分。
给定 m 个人和 n 块比萨,每块比萨的得分以及每个人对比萨的偏好 (可能有中性,喜欢或者讨厌),你的任务是计算每个人得到的最大分数。
输入格式
输入包含多组测试数据。
每组测试数据的第一行包含两个整数 n(1≤n≤1000) 和 m(1≤m≤100) — 分别表示比萨的数量和人数。第二行包含 n 个整数 a1,a2…an(1≤ai≤1000) — 表示每块比萨的分数。接下来的 m 行每行包含 n 个整数 b1,b2…bn(−1≤bi≤1) — 表示每个人喜欢(1),中性(0)或者讨厌(−1)每块比萨。
输入保证对于每组测试数据至少存在一个人喜欢比萨。
当 n = m = 0 时,表示输入结束。
输出格式
对于每组测试数据,输出 m 行。每行包含一个整数,表示每个人得到的最大分数。
样例输入
3 3
5 4 7
1 0 -1
0 1 0
1 0 0
3 3
4 7 8
-1 0 1
1 -1 0
1 0 0
样例输出
5
4
7
4
7
8
```python
# 代码:
while True:
n, m = list(map(int, input().split()))
if n == 0 and m == 0:
break
pizzas = list(map(int, input().split()))
preferences = [list(map(int, input().split())) for _ in range(m)]
scores = [0] * m
for i in range(n):
max_score = 0
for j in range(m):
if preferences[j][i] == 1:
max_score = max(max_score, pizzas[i])
elif preferences[j][i] == 0:
max_score = max(max_score, pizzas[i] // 2)
for j in range(m):
if preferences[j][i] == 1 or (preferences[j][i] == 0 and max_score == pizzas[i] // 2):
scores[j] += max_score
for score in scores:
print(score)
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)