一行一个正整数 t (1≤t≤100) 表示有 t 组测试数据。 接下来 2t 行,每组测试数据第一行一个正整数 n (1≤n≤1000) ,表示有 n 袋钻石。 第二行 n 个数,第 i 袋钻石个数是 a i (1≤i≤n,1≤a i ≤10 18 ) 。 输出描述 如果满足分赃条件,输出"yes",否则输出"no" 。(输出不包含引号)解题用python写
时间: 2023-06-02 19:04:16 浏览: 266
对于这个问题,我可以帮你编写一个简单的python程序来解决。
首先,我们需要读取输入数据。根据问题描述,我们需要读取t组数据,每组数据包含n个钻石袋的数量和每个袋子的钻石数量。我们可以使用input()函数来读取数据,然后使用split()函数将输入字符串分割成单个字符串,再使用map()函数将每个字符串转换成整数。 代码如下:
```python
t = int(input()) # 读取t组数据
for i in range(t):
n = int(input()) # 读取每组数据的钻石袋数量
a = list(map(int, input().split())) # 读取每个袋子的钻石数量
```
接下来,我们需要判断这些袋子中的钻石数量是否可以被平均分配给一组人。由于我们不知道人数的具体数量,我们可以使用袋子中钻石数量的总和除以袋子的数量作为每个人可以分配的钻石数量。如果这个数值不是整数,说明无法平均分配,输出"no"。 否则,我们可以使用一个循环遍历每个袋子,检查每个袋子中的钻石数量是否大于等于每个人可以分配的钻石数量。如果有一个袋子的钻石数量小于这个数值,说明无法满足分赃条件,输出"no"。 如果遍历完所有袋子后没有发现这种情况,说明可以满足分赃条件,输出"yes"。
下面是完整的python程序代码:
```python
t = int(input()) # 读取t组数据
for i in range(t):
n = int(input()) # 读取每组数据的钻石袋数量
a = list(map(int, input().split())) # 读取每个袋子的钻石数量
total = sum(a) # 计算钻石数量的总和
avg = total // n # 计算每个人可以分配的钻石数量
if total % n != 0: # 如果无法平均分配
print("no")
else:
can_share = True
for j in range(n):
if a[j] < avg: # 如果有一个袋子的钻石数量小于平均值
can_share = False
break
if can_share:
print("yes")
else:
print("no")
```
这个程序可以帮你解决这个问题。如果你有任何问题,请随时问我。
阅读全文